面试中常见的几个题目:
+'abc' => NaN
0/0 => NaN
1/0 => Infinity
-1/0 => -Infinity
0/1 => 0
-0/1 => -0
Is判断方法
Object对象的静态方法:Object.is
作用:优化===判断的
1 在js中0和-0存储位置是不一样的,但是===判断不出来
所以可以通过Object.is方法判断0和-0
2 在js中NaN数据存储的地址是同一个,但是===判断是不相等的
所以可以通过Object.is方法判断NaN
剩下的判断,===跟Object.is方法结果是一致的
举例代码如下:
console.log(0/1 === -0/1) // true
console.log(Object.is(0/1, -0/1)) // flase
console.log(+'abc' === 0/0) // false
console.log(Object.is(+'abc', 0/0)) // true
console.log(1/0 === 100/0) // true
console.log(Object.is(1/0, 100/0)) // true
console.log(100 === 100.0) // true
console.log(Object.is(100, 100.0)) // true
console.log(100 === '100') // false
console.log(Object.is(100, '100')) // false