1. /**
    2. * 实现Object.is()
    3. * 不知道 还可以通过 1/0 和1/-0 来玩;
    4. * @param {any} a
    5. * @param {any} b
    6. * @return {boolean}
    7. */
    8. function is(a, b) {
    9. if (a !== a) { // 只有NaN不等于它自己
    10. return b !== b; // 只有NaN不等于它自己
    11. }
    12. if (a === 0 && b === 0) { // 因为-0 === 0为true,所以当两个参数都等于0时
    13. return 1 / a === 1 / b; // 1 / -0 is -Infinity and -Infinity === -Infinity
    14. }
    15. return a === b; // 其他情况
    16. }