# 判断对象相等
# +0 与 -0
+0 === -0; // true
(-0).toString(); // '0';
(+0).toString(); // '0'
-0 < +0; // false
+0 > -0; // false
1 / +0; // Infinity
1 / -0; // -Infinity
1 / +0 === 1 / -0; // false;
IEEE_754 浮点数可以最高位是符号位,0正,1负。 零这个边界值。
Math.round(-0.1); // -0;
# 实现 -0 和 0 的区分
function eq(a, b) {
if (a === b) return a !== 0 || 1 / a === 1 / b;
}
# 实现 NaN
function eq(a, b) {
if (a !== a) return b !== b;
}
# eq
function eq(a, b) {
if (a === b) return a !== 0 || 1 / a === 1 /b;
if (a == null || b == null) return false;
if (a !== a) return b !== b;
var type = typeof a;
if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;
return deepEq(a, b);
}