JavaScriptの空配列[]と空のオブジェクト{}のブール値は何ですか?

2132 ワード

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   0true2console.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