1.undefined类型
Undefined类型只有一个值,就是特殊值undefined。当使用var和let声明变量却没有被初始化时,就相当于给变量赋予了 Undefined
let a;
var b;
console.log(a == undefined) // true
console.log(b == undefined) // true
Undefined是一个假值,因此,如果需要,可以用更简洁的方式检测他。
let a // 这个变量被声明了,只是值为undefined
// b 没有被声明
if(a){
这个模块不会被执行
}
if(!a){
这个模块会被执行
}
if(b){
这里会报错
}
2.Null类型
Null类型同样只有一个值,即特殊值null。逻辑上讲,null值表示一个空对象指针,这也是给typeof传一个null会返回‘object’的原因
let a = null ;
console.log(typeof a) // 'object'
undefined是由null派生而来
console.log(andefined == null) // true
3.Boolean类型
boolean类型有两个字面值:true和false
let a = '你好 黑云! '
if(a){
console.log('你也好啊') // 你也好啊
}
上面代码中,a会被自动转换为等价的布尔值true。由于存在这种自动转换,理解流控制语句中使用的是什么变量就非常重要。错误地使用对象而不是布尔值会明显的改变应用程序的执行流