js易错课前分享

144 阅读1分钟

布尔值为false的情况

var x = new Boolean(false);
if (x) {
  console.log('hi'); 
}
var y = Boolean(0);
if (y) {
  console.log('hello');  
}

显示结果是 控制台显示 hi
解释

  • 1.var x=new Boolean(false);是创建一个对象,任何对象转为布尔值都为true。布尔对象的初始值为true或false,除了那七个值的初始值为false外,其余都为true
  • 2.任何对象转为布尔值都为true,在js中,只有这七个值转为布尔值为false
    0,-0,NaN,"",null,undefined,false
  • 3.注意y=Boolean(0),这里进行的是显示类型转换,0转为布尔值是false;和new Boolean(0).这两个差别很大,用new调用构造函数会创建一个布尔对象。