布尔值
布尔值代表“真”和“假”两个状态。“真”用关键字true
表示,“假”用关键字false
表示。布尔值只有这两个值。
下列运算符会返回布尔值:
- 前置逻辑运算符:
!
(Not) - 相等运算符:
===
,!==
,==
,!=
- 比较运算符:
>
,>=
,<
,<=
如果 JavaScript 预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了下面六个值被转为false
,其他值都视为true
。
undefined
null
false
0
NaN
""
或''
(空字符串)
布尔值往往用于程序流程的控制,请看一个例子。
if ('') {
console.log('true');
}
// 没有任何输出
上面代码中,if
命令后面的判断条件,预期应该是一个布尔值,所以 JavaScript 自动将空字符串,转为布尔值false
,导致程序不会进入代码块,所以没有任何输出。
注意,空数组([]
)和空对象({}
)对应的布尔值,都是true
。
if ([]) {
console.log('true');
}
// true
if ({}) {
console.log('true');
}
// true
常见的javascript布尔类型判断
1、空字符串 “”
2、数字 0
3、null
5、数字NaN
注意
1、NaN不等于任何东西,包括它自己
2、undefined 与 null 在 == 判断时为true
以上列举出来的都是容易判断错误的,并且也是特别不明显的很可能造成bug的几点。例如,在实际工作中,我们可能会遇到以下情况:
var a = testBoolean || 22;
console.log(a)
这行代码的意思是,如果testBoolean已经存在并且有值,那么a就等于testBoolean的值,否则,a等于22。
正常情况下都不会出错,但如果testBoolean的值为上述举例的5种之一或false,那么结果就不是我们想要的了。
var testBoolean = 0;
var a = testBoolean || 22;
console.log(a) //结果为:22
所以当我们在实际使用过程中,要小心这5类判断,考虑全面,避免产生不必要的bug。
评论
请回复
×