Логические значения легко преобразуются в значения других типов, причем не_ редко такое преобразование выполняется автоматически.1 Если логическое значе_
1 Тем, кто программировал на C, следует обратить внимание, что в JavaScript име_ ется отдельный логический тип данных, в отличие от языка C, в котором для ими_ тации логических значений служат целые числа. Java_программистам следует иметь в виду, что хотя в JavaScript есть логический тип, он не настолько «чист», как тип данных boolean в Java – в JavaScript логические значения легко преоб_ разуются в другие типы данных и обратно, поэтому на практике в том, что касает_ ся работы с логическими значениями, JavaScript больше напоминает C, чем Java.
50 Глава 3. Типы данных и значения
ние используется в числовом контексте, тогда значение true преобразуется в чис_ ло 1, а false – в 0. Если логическое значение используется в строковом контек_ сте, тогда значение true преобразуется в строку "true", а false – в строку "false".
Когда в качестве логического значения используется число, оно преобразуется
в значение true, если оно не равно значениям 0 или NaN, которые преобразуются
в логическое значение false. Когда в качестве логического значения используется строка, она преобразуется в значение true, если это не пустая строка, в против_ ном случае в результате преобразования получается значение false. Специаль_ ные значения null и undefined преобразуются в false, а любые функция, объект или массив, значения которых отличны от null, преобразуются в true.
Если вы предпочитаете выполнять преобразование явно, можно воспользовать_ ся функцией Boolean():
var x_as_boolean = Boolean(x);
Другой способ явного преобразования заключается в использовании двойного оператора логического отрицания: