re: The Lies of "===" operator VIEW POST


0 === -0 is true because 0 doesn't have sign

NaN === NaN is false because, according to IEEE 754 specifications any operation performed on NaN values should yield a false value or should raise an error.


-0 does in fact have a sign:


Moreover, there are two zero values, called signed zeros: the sign bit specifies whether a zero is +0 (positive zero) or −0 (negative zero).


That same Wikipedia article specifies that 0 and -0 should compare as equal.

code of conduct - report abuse