Точка с запятой в JavaScript - важна или нет?
11 октября 2023 г.
Конспект раздела книги: JavaScript Полное руководство. Дэвид Флэнаган.
Точка с запятой (;) в JavaScript применяется для отделения операторов друг от друга. Среди программистов есть те кто использует точки с запятой для явной пометки концов операторов, даже когда они не требуются, а есть те, кто опускает точки с запятой всякий раз, когда это возможно.
В последнем случае следует быть внимательным, так как интерпретатор JavaScript не каждый разрыв строки трактует как точку с запятой.
Интерпретатор JavaScript трактует разрыв строки как точку с запятой, если следующий непробельный символ не может быть интерпретирован как продолжение текущего оператора.
Возьмем следующий пример:
1let x2x3=485console.log(x)67// интерпритатор воспримет его так8let x; x = 8; console.log(x);
Интерпретатор не может провести синтаксический разбор кода let x x без точки с запятой. Второй разрыв строки трактуется иначе, так как интерпретатор может продолжить синтаксический разбор более длинного оператора а = 3;
Следующий пример похож на два отдельных оператора, разделенных символом новой строки:
1let a = b + c2(d+l).toString()
Однако круглые скобки во второй строке могут интерпретироваться как вызов функции с из первой строки, и интерпретатор JavaScript трактует код так:
1let a = b + c(d+l).toString()
Чтобы избежать подобных проблем, следует использовать точку с запятой, если следующий оператор начинается со следующих символов: (, [, /, + или -.
Если нет возможности установить точку с запятой в конце оператора, то можно установить защитную точку с запятой перед сомнительным оператором.
1let n = 0 // Точка с запятой здесь опущена2; [y,y+2,y+4].forEach(console.log) // Защитная ; сохраняет этот оператор отдельным
Разрыв всегда интерпретируется как точка с запятой в случаях:
- 1) После операторов return , throw, yield , break и continue.
- 2) Операции ++ и - - Если вы используете любую из этих операций как постфиксную, тогда она должна находиться в той же строке, что и выражение, к которой операция применяется.
- 3) Стрелочная функция. Стрелка => должна располагаться в той же строке, где находится список параметров.