2016-05-03 2 views
6

В соответствии с тем, что я прочитал, все числа в JavaScript сохраняются как поплавки, за исключением индексов массива и операндов побитовых операций.Почему -0 === 0 оценивать true?

Поскольку все поплавки имеют знаковый бит -0 === 0, следует оценить значение false. Однако он оценивает значение true.

+0

О, стрелять. Не запускайте спутник! Прекратить! Прекратить! –

+4

Ваш вопрос заголовок крайне вводит в заблуждение, поскольку -0 === 0 оценивается как true. –

+0

Они разные, но они оцениваются как истинные, потому что спецификация того, как работают числа, говорит, недвусмысленно, вот что должно произойти. – ssube

ответ

6

Поскольку JS использует стандарт IEEE 754 для чисел с плавающей запятой, в котором говорится, что -0 и +0 должны «сравнивать равные с обычными (числовыми) операторами сравнения». (source)

Смежные вопросы