JavaScript: falsy
ложноподобные значения в JavaScript

Значения, которые в булевом контексте возвращают false
называются ложноподобными (falsy). Но какие из выражений действительно относятся к falsy
?
Разберем следующие примеры:
let a = 0;
let b = new Number(0);
if(!a) console.log("Hello world");
if (!b) console.log("Hello Nodejs");
else console.log("Hello Javscript");
Результат:
Hello world
Hello JavaScript
В перовм случае значение переменной a
равно 0
и является ложноподобным, поэтому !a
возвращает true
.
Во втором случае new Number(0)
возвращает объект, который в булевом контексте всегда соответствует true
, поэтому значение b
не является ложноподобным, я !b
возвращает false
.
Дополнительная информация на MDN
Спасибо за внимание.