Про комментарии, инструкции, выражения, операторы

Комментарии

// Комментарий, занимающий одну строку.
/* Комментарий,
занимающий несколько строк.
*/
/* Нельзя вкладывать /* комментарий в комментарий */ SyntaxError */

Инструкция

Инструкции(statements) разделяются символом ; Точка с запятой не является обязательной, но есть моменты когда она необходима.

Парсер инструкций, нужен только для того, чтобы более детально изучать синтаксис.

Выражение

Выражение(expression) - это один из типов инструкций, есть хорошее определение: "все что угодно, имеющее значение" Примеры выражений:

1 + 3; // <- выражение
3 + 5 + 3 * 4; // <- выражение
if (expression) {
// <- не является выражением, это инструкция IF, но ожидается, что в условии будет находиться выражение
console.log(5); // <- выражение, так как вызов функции сам по себе имеет значение, функции возвращают результат своей работы
}
function bar() {
// объявление функции в этом примере не является выражением
console.log();
}
bar; // <- выражение; Identifier expression (Скажем так... это обращение к идентификатору)
bar(); // <- вызов функции является выражением как и обращение к ее имени

Оператор

В дальнейшем, мы будем встречать такое понятие как условие Условие – это выражение, из которого интерпретатор ожидает получить булево значение. Например: 5 > 10 Так же, важно заметить, что интерпретатор автоматически постарается привести тип к boolean если из условия вернулось значение отличное от boolean

// когда встречаются условия
if (условие) {
тело;
}

Оператор(operator) - это элемент программного кода, который описывает то или иное действие в выражении (операцию). В большинстве языков программирования высокого уровня оператор - это символ, благодаря которому могут производиться различные виды вычислений, сравнений или присваиваний с участием одного или нескольких значений.

Операнд - это значение, переменная или выражение, которое расположено слева или справа от оператора.

1 + 3;
// В примере выше
// "+" – это оператор
// "1", "3" – это операнды
1++; // "++" это унарный оператор "постфиксный инкремент"
++1; // "++" это унарный оператор "префиксный инкремент"

Операторы бывают:

  • Унарные: когда с оператором используется только один операнд
  • Бинарные: когда с оператором используется два операнда
  • Тернарные: когда с оператором используется три операнда.
info

Чаще всего тернарный оператор в языках только один, поэтому его так и называют тернарным

note

Будут операторы, которые мы не будем документировать, такие как:

  • Доступ к свойствам (object.property, object["property"])
  • await ...

Важно заметить, что в этом справочнике слово оператор будет относиться к таким инструкциям как if else это немного конфликтует с определение, но так будет удобнее и во многих материалах такое встречается

Приоритет операторов

TODO: сделать таблицу