-0 和 +0 是两个不同的值,虽然它们在大多数情况下表现得相同,但一旦涉及金融计算、图形编程,就有必要区分正零和负零。
方案一:使用 ES5 的语法 Object.is
javascript
var a = -0;
Object.is(a, +0); // false
Object.is(a, -0); // true
方案二: 用非 0 的数字去除以 0、-0 和+0,会分别得到 Infinity、-Infinity 和+Infinity
javascript
var b = -0;
1 / b === -Infinity; // true
var c = +0;
1 / c === +Infinity; // true
var d = 0;
1 / d === Infinity; //true