выражение - любая ссылка на переменную или значение или набор ссылок и переменных объединенных операторами
2 - это выражение литерального значения
b - это выражение переменной, которое тут означает извлечение его текущего значения
b * 2 - это арифметическое выражение, в данном случае выполнение умножения
a = b * 2 - это выражение присваивания, в данном случае это присвоить результат выражения b * 2 переменной a (подробнее о выражениях далее)
f() - выражение вызова
a = b * 2
оператор - синтаксически выделенная функция для выполнения тех или инных операций над переменными или значениями
- бинарные
+, -, *
etc. - унарные
!, ++, --
etc. - тернарные
?:
- примитивы (6)
- string
- boolean
- NaN
- undefined
- null
- Symbol
- object (object, array, function, etc.)
boxing - механизм заворачивания типов в соответствующий ему объект обвертку при обращении к свойству
- токенизация / лексирование - разбиение на ключевые слова (токены)
- парсинг - преобразование массива токенов в дерево (AST - abstract syntax tree) которое представляет грамматическую структуру программы
- код генерация - процесс преобразования AST в исполняемый код
- LHS - для присваивания значений
- RHS - для получения значений