«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему «0» действует как ложь в сравнениях, но как истина в операторах «if» в JavaScript?

Почему «0» действует как ложь в сравнениях, но как истина в операторах «if» в JavaScript?

Опубликовано 7 ноября 2024 г.
Просматривать:318

Why Does

Разгадка парадокса JavaScript: почему «0» является ложным при сравнении, но ложным в операторах if

В JavaScript поведение примитива " 0» представляет собой загадку для разработчиков. В то время как логические операторы, такие как «==", приравнивают «0» к ложному, «0» ведет себя как истинное в условиях «если».

Парадокс сравнения

Код ниже демонстрируется парадокс сравнения:

"0" == false // true
false == "0" // true

В этом сценарии JavaScript преобразует значение "0" в значение false на основе его значений "истина" и "ложь". Такие значения, как «0», «NaN», «null» и undefined, считаются ложными, а другие — правдивыми.

Если аномалия утверждения

Однако ситуация становится загадочным, когда в операторе if используется «0»:

if ("0") console.log("ha") // ha

Несмотря на принуждение значение false при сравнении, «0» оценивается как true в условиях «if». Это связано с тем, что операторы «if» в JavaScript рассматривают все непустые строки, включая «0», как правдивые.

Таблицы истинности

Чтобы понять это поведение, мы может ссылаться на таблицы достоверности JavaScript. Они классифицируют значения на основе их статуса истинности/ложности в условиях сравнения (==) и утверждения «если» (правдивость):

ЗначениеСравнениеЕсли утверждение
Правда/ПравдаПравдаПравда
Ложь/Ложьложьложь
"0" (Ложь)ложьtrue

Вывод

Парадокс «0» в JavaScript возникает из-за различных интерпретаций истинности в сравнении (= =) и утверждения «если» (истина). Это тонкое, но важное различие, о котором следует помнить разработчикам, чтобы избежать неожиданных результатов. Рекомендуется использовать строгое равенство (===) во время сравнений, чтобы обеспечить точные оценки.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3