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タイプに変わります.(1)console.log([]==false); //true, [] 0,false 0, true
(2)console.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