, почему отрицательные числа Javascript не всегда являются истинными или ложными?

-1 == true;        //false
-1 == false        //false
-1 ? true : false; //true

Может кто-нибудь объяснить вышеприведенный вывод? Я знаю, что могу обойти это, сравнивая с 0, но мне интересно. Я ожидал бы, что по крайней мере одно из неаккуратных утверждений equals будет истинным, поскольку они неявно преобразуют типы, и я, конечно, не ожидал, что троичный символ даст совершенно другой результат.

50
задан Ollie Edwards 1 September 2010 в 04:40
поделиться

1 ответ

В большинстве систем ненулевые значения считаются истинными значениями, но это не обязательно означает, что они те же истинные значения, что и истинные. Таким образом, -1 == true не обязательно выполняется, но -1 все же можно считать истинным значением, поскольку оно не равно нулю.

Однако на самом деле вам не следует сравнивать целые числа с булевыми значениями, если вы можете этого избежать.

3
ответ дан 7 November 2019 в 11:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: