Выразительный JavaScript | страница 12
>!==
. Первый проверяет, что две величины абсолютно идентичны, второй – наоборот. И тогда сравнение >“” === false
возвращает >false
.Рекомендую использовать трёхсимвольные операторы сравнения для защиты от неожиданных преобразований типов, которые могут привести к непредсказуемым последствиям. Если вы уверены, что типы сравниваемых величин будут совпадать, можно спокойно использовать короткие операторы.
Короткое вычисление логических операторов
Логические операторы >&&
и >||
работают с величинами разных типов очень странным образом. Они преобразуют величину с левой стороны оператора в булевскую, чтобы понять, что делать дальше, но в зависимости от оператора и от результата этого преобразования, возвращают оригинальное значение либо левой, либо правой части.
К примеру, >||
вернёт значение с левой части, когда его можно преобразовать в >true
– а иначе вернёт правую часть.
>console.log(null || "user")
>// → user
>console.log("Karl" || "user")
>// → Karl
Такая работа оператора >||
позволяет использовать его как откат к значению по умолчанию. Если вы дадите ему выражение, которое может вернуть пустое значение слева, то значение справа будет служить заменой на этот случай.
Оператор >&&
работает сходным образом, но наоборот. Если величина слева преобразовывается в >false
, он возвращает эту величину, а иначе – величину справа.
Ещё одно важное их свойство – выражение в правой части вычисляется только при необходимости. В случае >true || X
не важно, чему равно >X
. Даже если это какое-то ужасное выражение. Результат всегда >true
и >X
не вычисляется. Так же работает >false && X
– >X
просто игнорируется. Это называется коротким вычислением.
Оператор условия работает так же. Первое выражение всегда вычисляется, а из второго и третьего значения – только то, которое оказывается выбранным в результате.
Итог
Мы рассмотрели четыре типа величин JavaScript: числа, строки, булевские и неопределённые.
Эти величины получаются, когда мы пишем их имена (>true
, >null
) или значения (>13
, >“ёпрст”
). Их можно комбинировать и изменять при помощи операторов. Для арифметики есть бинарные операторы (>+
, >-
, >*
, >/
и >%
), объединение строк (>+
), сравнение (>==
, >!=
, >===
, >!==
, ><
, >>
, ><=
, >>=
) и логические операторы (>&&
, >||
), а также несколько унарных операторов (>-
для отрицательного значения, >!
для логического отрицания и >typeof
для определения типа величины).
Эти знания позволяют использовать JavaScript в качестве калькулятора, но и только. В следующей главе мы будем связывать эти простые значения вместе, чтобы составлять простые программы.