В яваскрипт есть как Boolean
-объекты, так и примитивные Boolean
значения.
Не смешивайте их. Объект - это объект. В частности, яваскрипт любой
объект считает "true", например при неявном приведении типа в операторе if
:
[example lang="js" title="new Boolean(false) считается true"]
x = new Boolean(false);
if (x) {
// . . . этот код будет выполнен
}
[/example]
Оператор if
приводит аргумент к примитивному значению, поэтому new Boolean(false)
был приведен к true
, т.к является объектом.
Не используйте объект Boolean
для преобразования к булевому значению. Вместо этого, используйте Boolean
как функцию.
x = new Boolean(expression); |
Или можно проще, с использованием двойного отрицания:
В современном яваскрипт-программировании new Boolean
не используется.