Page 116 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 116
r
к
Л о ичес и е операторы
Принимая во внимание, что арифметические операторы, с которыми мы все зна
комы, работают с числами, способными принимать бесконечные количества значе
ний (или по крайней мере очень большое количество значений, поскольку память
компьютеров конечна), логические операторы обрабатывают только логические зна
чения, способные принимать только одно из двух значений: истина или ложь.
В математике (и во многих языках программирования) логические операторы ра
ботают только с логическими значениями и возвращают только логические значе
ния. JavaScript позволяет работать со значениями, не являющимися логическими, и,
что еще удивительнее, способными возвращать значения, не являющиеся логически
ми. Я не хочу сказать, что реализация логических операторов в JavaScript является
в чем-то неправильной или не строгой: используя только логические значения, вы
будете получать результаты, являющиеся только логическими значениями.
Прежде чем мы обсудим сами операторы, необходимо ознакомиться с механиз
мом сопоставления не логических значений с логическими значениями в JavaScript.
И ст и н н ы е и лож н ы е значения
Во многих языках есть концепция значений "истинности" и "ложности"; в С,
например, даже нет логического типа: число О - это ложь, а все другие числовые
значения - истина. В JavaScript происходит нечто подобное, но задействуются все
типы данных, фактически позволяя различить любое значение как истину и ложь.
(
JavaScript полагает следующие значения ложью f alse).
• undef ined
• nu l l
• false
• о
• NaN
• ' ' (пустая строка)
t
Все остальное - истина ( r ue). Поскольку истиной является великое множество
значений, я не буду перечислять их здесь все, я укажу лишь те, о которых следует знать.
• Любой объект (включая тот, метод valueOf ( ) которого возвращает false).
• Любой массив (даже пустой).
• Строки, содержащие только отступ (например, " ").
• Строка " f a l s e " .

