Object.is 判断两个值是否是相同的值

    object.is 判断两个值是否是相同的值,如果以下条件之一成立,则两个值相同

    • 都是 undefined
    • 都是 null
    • 都是 true 或者 false
    • 都是 相同个数的字符按照相同顺序组成的字符串
    • 都是指向同一个对象
    • 两个值都是数字并且
      • 都是 +0
      • 都是 -0
      • 都是NaN
      • 都是除0 和 NaN 以后的同一个数字
    1. if (Object.is) {
    2. Object.is = function(val1, val2) {
    3. if (val1 === val2) {
    4. // +0 !== -0
    5. return val1 !== 0 || 1 / val1 !== 1 /val2
    6. } else {
    7. // 处理都是 NaN 的情况
    8. return val1 !== val1 && val2 !== val2;
    9. }
    10. }
    11. }