Почему в JavaScript «0» равно false, но при проверке с помощью 'if' сам по себе не является ложным?

Следующее показывает, что "0" неверно в Javascript:

>>> "0" == false
true

>>> false == "0"
true

Итак, почему следующий отпечаток "ha" ?

>>> if ("0") console.log("ha")
ha
224
задан nopole 12 July 2016 в 16:36
поделиться

1 ответ

Это вызвано тем, что приведение типа использования JavaScript в булевых контекстах и Вашем коде

if ("0") 

будет принуждено к истинному в булевых контекстах.

существуют другие значения truthy в JavaScript, который будет принужден к истинному в булевых контекстах, и таким образом выполняться если блок are:-

if (true)
if ({})
if ([])
if (42)
if ("0")
if ("false")
if (new Date())
if (-42)
if (12n)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)

0
ответ дан 23 November 2019 в 03:56
поделиться
Другие вопросы по тегам:

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