总结了第三章数据类型部分自己觉得比较关键的部分。Symbol数据类型和Object类型还没加,以后再改
数据类型
ECMAScript有六种简单数据类型和一种复杂数据类型。
简单数据类型(也称为原始类型):Undefined、Null、Boolean、Number、String、Symbol。
复杂数据类型:Object(对象)。Object是一种无序名值对的集合。
字面量:字面量表示如何表达这个值(即为一眼看过去就知道是多少的数据),如3、10、3.14、'wudi’等。
1 typeof操作符
typeof操作符用于确定一个变量的数据类型,对一个值使用typeof操作符会返回一个字符串以表示其类型:
返回值 | 描述 |
---|---|
“undefined” | 表示值未定义 |
“boolean” | 表示值为布尔值 |
“string” | 表示值为字符串 |
“number” | 表示值为数值 |
“object” | 表示值为对象(而不是函数)或null |
“function” | 表示值为函数 |
“symbol” | 表示值为符号 |
需要注意typeof null返回值是"object",这是因为特殊值null被认为是一个空对象的引用
2 Undefined类型
Undefined类型是简单数据类型,其值只有一个,即特殊值undefined。当使用var或let声明了变量但是没有初始化时,就相当于给变量赋予undefined值
var age;
console.log(age);//输出undefined
默认情况下,任何未经初始化的变量都会取得undefined值,因此下面等式成立
var age;
console.log(age == undefined);//返回true
增加特殊值undefined的目的就是为了区分空对象指针(null)和未初始化变量
需要注意,对于未声明的变量,只能执行一个操作,即typeof操作符。对未声明的变量使用typeof也返回"undefined"
var a;
console.log(typeof a);//"undefined"
console.log(typeof b);//"undefined"
JavaScript中的真值和假值:
JavaScript中每个值都可以转换为布尔类型,转换后为true的就是真值,转换后为false的就是假值。JavaScript中的假值有false、null、undefined、0、’’、NaN
undefined是一个假值,除了undefined之外还有很多值也是假值。可以对这些假值进行检测,但是需要明确自己要检测的就是undefined这个字面值。
var a;
if(a){
//该块不会被执行
}
if(!a){
//该块会被执行
}
3 NULL类型
Null类型是简单数据类型,它的值只有一个,即特殊值null。逻辑上讲null值表示一个空对象指针,因此typeof null返回"object"。
console.log(typeof null);//"object"
在定义将来要保存对象的变量时,建议声明时直接用null进行初始化,不要用其他值。
undefined值是由null值派生来的,因此ECMA-262将其定义为表面上相等
console.log(null == undefined);//"true"
null同样是一个假值(转换为Boolean后为false),因此可以对它进行检测。但是因为共有6个假值,因此需要确定检测的就是null这个字面值。
let msg = null;
if(msg){
//这个块不会被执行
}
if(!msg){
//这个块会执行
}
4 Boolean类型
布尔类型是简单数据类型,它有两个字面值:true和false。需要注意这两个字面值不同于数值,因此true不等于1,false不等于0。
所有ECMAScript类型都能转换为Boolean类型,只需调用Boolean()函数即可。即Boolean()转型函数可以在任意类型的数据上使用,并返回一个布尔