Boolean()转换和相等操作符比较

if的判断

if(condition) {
        statement
}

condition的值会自动调用Boolean()转换函数将这个表达式的结果转换为一个布尔值。如果condition值为true则执行括号内语句statement。

Boolean()转换

数据类型 转换位false的值
Boolean false
String ""(空字符串)为false
Number 0和NaN为false
Object 全为true
Undefined false
Null false

例子

if (" ") {
    console.log('blank')
}//true,输出blank,if()内不是空字符串有空格

if ("") {
    console.log('empty')
}//false,不输出,if()内空字符串

if ([0]) {
    console.log('array')
}//true 输出array,[0]是空数组

==的判断

在转化不同的数据类型时,有以下基本规则

  • 如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值
  • 如果一个操作数是字符串,另一个数是数值,在比较相等性之前先将字符串转换为数值
  • 如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值按照前面的规则进行比较。

一些特殊情况

表达式
null == undefined true
NaN == NaN false
false == 0 true
undefined == 0 false
null == 0 fasle
"1" == 1 true

例子

"" == 0 // true

" " == 0 //true

"hello" == true //false

var obj = { 
  a: 0, 
  valueOf: function(){return 1} 
} 
obj == 1 // true
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容