JavaScript中的空数组[ ]和空对象{ }的布尔值是什么?

1.空数组和空对象都是Object类型

console.log(typeof []); // object
console.log(typeof {}); // object

2.空数组[]转化为Number,得到0;空对象{}转化为Number,得到NaN

console.log(Number([])); // 0
console.log(Number({})); //NaN

3.用if()判断
由于空数组和空对象都是Object类型,因此用if()判断的时候,都为true
4.和布尔值比较
由于任何值和布尔值比较时,两边都会转化为Number类型

1console.log([]==false);  //true,因为[]转化为0false转化为0,因此为true2console.log({}==fasle); //false,因为{}转化为NaN,因此为false

5.[0]用if判断的时候为true,和布尔值比较的时候转换为0

console.log(([0])?true:false);//true
console.log([0]==false);//true

6.{x:0}用if判断的时候为true,和布尔值比较的时候转换为NaN

console.log(({x:0})?true:false);//true
console.log({x:0}==false);//true

你可能感兴趣的:(JavaScript中的空数组[ ]和空对象{ }的布尔值是什么?)