表达式 | 结果 | 原因 |
---|---|---|
undefined == null | 真 | |
NaN == NaN | 假 | 两个NaN永远不会相等 |
isNaN("100") | 假 | (发生转换)"100"=>100=>假 |
isNaN(null) | 假 | (发生转换)null=>0=>假 |
parseInt("1a") === 1 | 真 | (发生转换)"1a"=>1=>真 |
[] instanceof Array | 真 | |
typeot []或 unll | Object | 基本数据类型我行,引用数据类型我摆烂,都是obj |
+new Array(017) | NaN | |
alert(2<1<3) | true | 2<1会显示false,而false在js中会被转换为0,后面等于0<3,于是true |
new Array(017); // [empty × 15] new Array(017).valueOf().toString(); // ',,,,,,,,,,,,,,' +'...............'; // NaN
console.log(+new Array(017)) // NaN console.log(+[017]) // 15 八进制 console.log(+017) // 15 console.log(017) // 15 console.log('*********************'); console.log(+new Array()) // 0 console.log(+new Array(0)) // 0 console.log(+new Array(1)) // 0 console.log(+new Array(2)) // NaN console.log('*********************'); console.log(+[]) // 0 console.log(+[1]) // 1 console.log(+[2]) // 2 console.log(+[017]) // 15 console.log(+[1, 2]) // NaN console.log('*********************'); console.log(+[null]) // 0 console.log(+[undefined]) // 0 console.log(+[undefined, undefined]) // NaN
console.log(+new Array(017)); //NaN console.log(+new Array()); //0 console.log(+new Array(0)); //0 console.log(+new Array(1)); //0 console.log(+new Array(2)); //NaN console.log(+[1]); //1 console.log(+[1, 2]); //NaN console.log(+[]); //0 console.log(+[undefined]); //0 console.log(+undefined); //NaN