1. Undefined类型
Undefined
类型只有一个值,就是特殊值undefined
,当使用了var或let
声明了变量但是没有初始化
时,就相当于给变量赋予了undefined
值
let message=undefined
console.log(message==undefined);//true
对未声明的变量,使用typeof的时候,返回结果也
"undefined"
因为未初始化的变量会被自动赋予undefined
值
(没看懂……)
console.log(typeof age);//undefined
2. Null类型
Null类型同样只有一个值,即特殊值null。null值表示一个
空对象指针
,这也是typeof(null)
返回结果为"object"
的原因
let car=null
console.log(typeof car)//"object"
在定义将来要保存对象值的变量时,建议用
null
来初始化,不适用其他值,这样,只要检查这个变量的值是不是null就可以
。知道这个变量是否在后来被重新赋予了一个对象的引用。
if(car!=null){
//此时car是一个对象的引用
}
undefined值是由null值派生而来的
,因此ECMA-262将它们定义为表面上相等,比如下面列子:
console.log(null == undefined)//true
3. 其他
null
和undefined
转换成Number
类型
- 类型
typeof
检测结果。
- 使用
==
判断二者其实是相等的。但是===
是不等的,二者是不同的数据类型。