*数据类型:5种基本数据类型(简单数据类型或原始类型)和1种复杂数据类型
5种基本数据类型:
未定义类型
null 空类型
布尔类型
数值型
字符串类型
1.复杂数据类型:——对象类型
*检测变量(运算符)的数据类型:变量名或(变量名)
可能会返回以下类型(字符串):
"" --如果这个值未定义;
"" -- 如果该值为布尔值;
"" -- 如果该值为数值;
"" -- 如果该值是字符串;
"" -- 如果这个值是一个对象或者 null;
"" -- 如果该值是一个函数。
* -- 未定义类型
类型只有一个值,这一点很特殊。
1)当使用var声明一个变量但未赋值(未初始化)时,该变量的值为。 检测其类型也是如此。
变量a;
.log(a); //a=
.log(a);//""
2)该变量从未定义过,其类型为,值报错。
.log(e); //错误报告e不是
.log(e);//""
*Null -- 空类型
Null 类型是第二种只有一个值的类型,这个特殊值是 null。 null 值表示空对象指针。
Null 是一种特殊的对象类型:
var 汽车 = null;
.log(汽车);//空
.log(汽车);//""
事实上,该值是从 null 值派生的,因此 ECMA-262 要求其相等性测试返回 true。
警报(==空); //真的
null 和之间的区别:
1.权威指南:null,都代表“价值空缺”,你可以认为代表系统层面,
空缺表示意外或类似错误的值,而 null 表示空缺表示程序级、正常或预期值。
2、高级编程:当使用var声明变量但未初始化时,该变量的值为。 null 值表示空对象指针。
是访问未初始化的变量时返回的值,null是访问尚不存在的对象时返回的值。 因此,可以将其视为空变量,将null视为空对象。
***当定义一个要保存对象的变量时,可以让该变量先保存null值,这样就可以体现null是一个空指针对象。
它还可以更好地区分 null 和 .
* -- 布尔类型
Type 是 中最常用的类型。
该类型只有两个值:true(真)\ false(假)。
调用转换函数:()将所有类型的值转换为对应的布尔值。
var str = "你好世界!";
.log((str));//true
各种数据类型转换布尔类型规则
-------------------------------------------------- ------------------
数据类型转换为 true 值和转换为 false 值。
-------------------------------------------------- ------------------
任何非空字符串“”(空字符串)
任何非零数值(包括无穷大)0 和 NaN(不是数值)
任何对象为空
没有任何
1. 除 0 和 NaN 之外的所有数字转换为 类型时均为 true。
2.除“”以外的所有字符均转换为布尔值且为true
3. Null 和转换为 都是 false
* -- 数字类型
整数 100、22、11、3
浮点值(在某些语言中称为双精度值) 4.522 3.
注意:保存浮点值所需的内存空间是保存整数值的两倍。
浮点值的最高精度为 17 位小数。 特别:0.1+0.2=0。
范围:
.: 5e-324
.:1.+308
-(负无穷大),+(正无穷大)
3/0 +(正无穷大)
-3/0 -(负无穷大)
关键点:
*NaN:not a 不是数字。 特殊数字类型
指示应返回数值的操作数未返回数值的情况。
NaN特性: 1)任何涉及NaN的运算都会返回NaN。
2) NaN不等于任何值,包括NaN本身。
警报(NaN == NaN)//假
isNaN(参数):判断参数是否“不是数值”。 如果是数值,则返回 false; 如果不是数值,则返回true;
警报(isNaN(NaN)); //真的
警报(isNaN(10)); //false(10是数值)
警报(isNaN(“10”)); //false(可转换为值10)
警报(isNaN(“你好”)); //true(无法转换为数值)
警报(isNaN(true)); //false(可转换为值1)
*数值转换:有3个函数可以将非数值转换为数值:
1)()
2)()
3)()
**():转换函数()可用于任何数据类型
(变量名/变量)
示例:(真)//1
(假)//0
(22)//22
(空)//0
() //NaN
(“123”)//123
(“2.11”)//2.11
(“”)//0
("") //NaN
**() 和 () 这两个函数专门用于将字符串转换为数值。
():从第一位取整数部分
示例:(“”)//1234
("") //NaN(差异:("") //0)
(“”)//112
(“22.5”)//22
()也可以指定基数(可以解析不同的基数):("0xAF",16) //175
():从第一个数字开始获取小数部分(只识别第一个小数点),并且只解析小数。
示例:(“”)//1234
(“22.5”)//22.5
(“22.5.22”)//22.5
注意:.log(("3.125e7")); //
.log(("3.125e7")); //3
.log(("3.125e7")); //
* -- 字符串类型
字符串可以用双引号或单引号表示。
var str = "你好世界";
var str = '你好世界';
该数据类型包含一些特殊字符文字,也称为转义序列,用于表示非打印字符。
\n 换行符
\t制表符
\b 空格
\r 输入
\f 饲料
关键点:
*查看字符串的长度:属性
var str = "你好世界";
.log(str.);//11
*查看字符串中对应位置的字符。
var str = "你好世界";
.log(str[1]);//e
* 2种转换为字符串的方法:
1)*.()
数组、布尔值、对象和字符串值都有 () 方法。
但null和value没有这个方法。
例子:
var arr = [1,2,3,4];
.log(arr.());
注:()可以传递一个参数:输出值的基数
变量总和= 10;
.log(sum.()) //"10"(默认为十进制)
.log(sum.(2)) //"1010"
.log(总和。(8)) //12
.log(总和。(10)) //10
2)(变量)
强制转换函数可以转换任意类型的值
示例:var num1;
(123) //“123”
(3>4) // “假”
(3
(num1) // “”
(空)//“空”
* “+”还可以将值转换为字符串,或连接多个字符串。
var str = 111+""; //“111”
var str = "你好" + "世界"; //“你好世界”
* -- type中的对象:实际上是数据和函数的集合
var o = {键:值,键1:...}; \\对象字面量方法创建
var o = new(); \\构造函数方法创建
。日志( ); //返回
//
栈内存和堆内存的概念:
栈:是程序启动时预留的工作内存区域。
比如程序的局部变量、函数调用都是从栈中获取的。 该内存在需要时分配,不需要时释放。
堆:它是计算机的可用物理内存和硬盘上的可用空间的总和。
但它的获取不是自动的,而且比从堆栈分配内存要慢。