Операторы подразделяют на категории, учитывая количество необходимых для них операндов. Большая часть операторов, к примеру +, являются двухместными. Такие операторы  обладают возможностью объединения выражений в еще более сложные. Это означает, что с подобными операторами работают сразу два операнда.

Язык JavaScript имеет поддержку и унарных операторов, задача которых преобразовывать одни выражения в другие, являющиеся более сложными. К примеру, унарный минус производит смену знака операнда, а унарный плюс способен преобразовать строковое числовое представление в значение числового типа.

Также в JavaScript существует тернарный оператор. Этот единственный в своем роде условный оператор интересен тем, что способен объединить сразу три выражения в одно единственное значение.

выражение ? выражение : выражение;

При создании выражений в JavaScript, стоит обратить внимание на типы данных, которые передаются операторам, а также на типы данных, возвращаемые операторами. Разнообразные операторы нуждаются в возвращении операндами значений определённых типов.

"строка" * "еще строка";

К примеру, невозможно осуществлять умножение вышеприведенных строк. Именно поэтому подобные выражения не имеют смысла. Однако, интерпретатор JavaScript может проявлять попытки реализации преобразования подобных выражений в требуемые типы и форматы, а в таком случае выражение будет являться допустимым.

В JavaScript оператор сложения + может складывать числовые операнды и выполнять конкатенацию строк. А если оператору + передавать в качестве одного операнда строку, а в качестве другого — иной тип данных, то данный оператор в соответствии с правилами преобразований отдает предпочтение конкатенации строк, о чем уже говорилось ранее в разделе учебника, описывающим типы данных JavaScript.

Исходя из этого, следует учитывать поведение некоторых операторов, проявляющих себя по-разному, отталкиваясь от типов данных операндов. Но, не смотря на это, операторы в JavaScript не всегда возвращают значения тех же типов, к которым принадлежали операнды. К примеру, операторы сравнения, такие как больше >, меньше <, сравнения на равенство == и прочие, могут принимать в роли аргументов разнообразные типы, но будут всегда возвращать результаты логических типов, показывающих истинность сравнений.

В JavaScript существует понятие приоритетов операторов, от которых зависит очередность исполнения кода. Другими словами, приоритет необходим, чтобы определять порядок выполнения операций в программе. У тех операторов, у которых приоритет выше, операции выполняются раньше, соответственно, у операторов, чей приоритет ниже, действия будут выполнены позже. Далее, в таблице, приводится порядок приоритетов, сортированный от большего к меньшему.

ОператорОператорАссоциативностьОперандыТипы значений
!Логическая инверсиясправа налево1логическое → логическое
deleteУдаление свойствасправа налево1левостороннее выражение → логическое
typeofОпределение типа операндасправа налево1любое → строка
voidВозврат неопределенного значениясправа налево1любое → undefined
*, /, %Умножение, деление, деление по модулюслева направо2число, число → число
+, -Сложение, вычитаниеслева направо2число, число → число
+Конкатенация строкслева направо2строка, строка → строка
<<Сдвиг влевослева направо2целое, целое → целое
>>Сдвиг вправо с сохранением знакаслева направо2целое, целое → целое
>>>Сдвиг вправо с заполнением нулямислева направо2целое, целое → целое
<, <=, >, >=Сравнение числовых значенийслева направо2число, число → логическое
<, <=, >, >=Сравнение строкслева направо2строка, строка → логическое
instanceofПроверка на принадлежность к ссылочгому типуслева направо2объект, функция → логическое
inПроверка наличия свойстваслева направо2строка, объект → логическое
==Проверка на равенствослева направо2любое, любое → логическое
!=Проверка на неравенствослева направо2любое, любое → логическое
===Проверка на идентичностьслева направо2любое, любое → логическое
!==Проверка на неидентичностьслева направо2любое, любое → логическое
&Поразрядное Ислева направо2целое, целое → целое
^Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИслева направо2целое, целое → целое
|Поразрядное ИЛИслева направо2целое, целое → целое
&&Логическое Ислева направо2любое, любое → любое
||Логическое ИЛИслева направо2любое, любое → любое
?:Выбор второго или третьего операндасправа налево3логическое, любое, любое → любое
=Присваивание переменной или свойствусправа налево2левостороннее выражение, любое → любое
*=, /=, %=, += и др.Операция с присваиваниемсправа налево2левостороннее выражение, любое → любое
,Отбросить первый операнд, вернуть второйсправа налево2любое, любое → любое

Говоря об ассоциативности операторов, подразумевают порядок исполнения операций, обладающих одинаковыми приоритетами. Ассоциативность слева направо будет означать, что порядок выполнения операций идентичен самой ассоциативности. К примеру, оператор сложения обладает ассоциативностью слева направо, а значит, в следующих двух выражениях явно заметна их эквивалентность, где результат последовательного применения операции не зависит от расстановки скобок:

var i = х + у + z;
var i = ((х + у) + z);

Но стоит обратить внимание, что от расположения операндов и правил преобразования значений в равных условиях приоритета операторов, учитывая их последовательность исполнения, результаты могут существенно отличаться.

Еще одним немаловажным моментом является то, что выражения обращения к свойствам объектов и элементам массивов, а также выражения вызова функции имеют больший приоритет над операторами и всегда вычисляются в первую очередь.