Object.is 判断两个值是否是相同的值
object.is 判断两个值是否是相同的值,如果以下条件之一成立,则两个值相同
- 都是 undefined
- 都是 null
- 都是 true 或者 false
- 都是 相同个数的字符按照相同顺序组成的字符串
- 都是指向同一个对象
- 两个值都是数字并且
- 都是 +0
- 都是 -0
- 都是NaN
- 都是除0 和 NaN 以后的同一个数字
if (Object.is) {
Object.is = function(val1, val2) {
if (val1 === val2) {
// +0 !== -0
return val1 !== 0 || 1 / val1 !== 1 /val2
} else {
// 处理都是 NaN 的情况
return val1 !== val1 && val2 !== val2;
}
}
}