DEV Community

loading...

Discussion on: Identifying Negative Zero

Collapse
savagepixie profile image
SavagePixie

You could also use Object.is(), which does make a difference between -0 and 0:

Object.is(0, -0) // -> false
Object.is(-0, -0) // -> true
Collapse
emnudge profile image
EmNudge Author

Yes! I completely forgot to include that one!
Object.is() seems to be a "fixed" === since it also works when comparing NaN, unlike ===.

Collapse
theodesp profile image
Theofanis Despoudis

MDN gives a polyfill code:

if (!Object.is) {
  Object.is = function(x, y) {
    // SameValue algorithm
    if (x === y) { // Steps 1-5, 7-10
      // Steps 6.b-6.e: +0 != -0
      return x !== 0 || 1 / x === 1 / y;
    } else {
      // Step 6.a: NaN == NaN
      return x !== x && y !== y;
    }
  };
}