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
Спасибо за внимание.
