Унарные операторы
Не все операторы являются символами. Некоторые написаны именно как слова. Одним из примеров является оператор "typeof", который выдает строковое значение, обозначающее тип значения, которое вы ему даете, например:
console.log(typeof 4.5)
// → number
console.log(typeof "x")
// → string
Мы будем использовать console.log в примере кода, чтобы указать, что мы хотим видеть результат оценки чего-либо. Все остальные показанные операторы оперируют двумя значениями, но typeof принимает только одно.
Операторы, которые используют два значения, называются бинарными, а операторы, принимающие одно, называются унарными. Оператор минус можно использовать как в качестве бинарного оператора, так и в качестве унарного оператора, например:
console.log(- (10 - 2))
// → -8
Булевы значения (boolean)
Часто полезно иметь значение, которое различает только две возможности, такие как «да» и «нет» или «включено» и «выключено». Для этой цели в JavaScript есть логический тип, который имеет только два значения, true и false, которые записываются как эти слова.
Сравнение
Вот один из способов получения логических значений с помощью boolean:
console.log(3 > 2)
// → true
console.log(3 < 2)
// → false
Знаки ">" и "<" являются традиционными символами «больше чем» и «меньше чем» соответственно. Это бинарные операторы.
Применение результатов в логическом значении, которое указывает, имеют ли они истинное значение в этом случае. Строки можно сравнивать одинаково.
console.log("Апельсин" < "Арбуз")
// → true
Порядок упорядочения строк примерно буквенный, но не совсем то, что вы ожидаете увидеть в словаре: заглавные буквы всегда «меньше» строчных, поэтому «А» < «a» и неалфавитные символы (!, -, и тд) также включены в заказ.
При сравнении строк JavaScript перебирает символы слева направо, сравнивая коды Unicode один за другим. Другие подобные операторы: "> =" (больше или равно), "<=" (меньше или равно), "==" (равно) и "! =" (Не равно), например:
console.log("Зудящий" != "Колючий")
// → true
console.log("Яблоко" == "Апельсин")
// → false
В JavaScript есть только одно значение, которое не равно самому себе, и это NaN («не число»).
console.log(NaN == NaN)
// → false
Предполагается, что NaN обозначает результат бессмысленных вычислений, и, как таковой, он не равен результату любых других бессмысленных вычислений.