Точка с запятой в каждом языке очень важна для понимания кода компилятором. В этих языках он обозначает конец строки, но в случае JavaScript нет необходимости добавлять точку с запятой к каждой строке. Всегда остается предметом споров, следует ли использовать точку с запятой в каждой строке кода JavaScript или нет. Хотя верно то, что я могу сэкономить несколько байтов памяти, не используя точки с запятой повсюду в коде, также верно и то, что использование точек с запятой предотвращает возникновение нежелательных ошибок во время компиляции.
Если вы хотите избежать использования точки с запятой в своем коде, вы должны знать о правилах, которые использует компилятор при добавлении самой точки с запятой во время синтаксического анализа кода.
Компилятор сам добавляет точку с запятой
- Когда начальный код в следующей строке прерывает код текущей строки.
- Когда следующая строка закрывает текущий блок с помощью «}».
- Когда в отдельной строке есть оператор
- Когда в отдельной строке есть оператор
- Когда в отдельной строке есть оператор
- Когда в отдельной строке есть оператор
Пример: Теперь давайте разберемся с этим на нескольких примерах:
Javascript
let a = 21
let b = 31
if
(a<b){
console.log(
"a is less than b"
)
}
for
(let i = 0; i < 10; i++) {
if
(i==1)
continue
else
if
(i==5)
break
else
console.log(i)
}
Теперь весь этот код будет интерпретироваться компилятором JS как
Пример:
Javascript
let a = 21;
let b = 31;
if
(a<b){
console.log(
"a is less than b"
);
}
for
(let i = 0; i < 10; i++) {
if
(i==1)
continue
;
else
if
(i==5)
break
;
else
console.log(i);
}
Выход
a is less than b 0 2 3 4
Другой пример:
// Both code works the same
console.log(
"Hello"
)
console.log(
"Hello"
);
Выход
Hello Hello
Пример: Но в некоторых случаях JS не может добавить точку с запятой в нужных местах, что в конечном итоге приводит к синтаксическим ошибкам. Вот некоторые из примеров:
Javascript
const Hey =
'hey'
const namaste =
'namaste'
const heyNamaste = Hey +
' '
+ namaste
[
'h'
,
'e'
,
'y'
].forEach((char) => console.log(char))
Ошибка
Итак, в этом случае, согласно правилу 1, начальный код в последней строке не нарушает код предыдущей строки, поэтому JS не добавит точку с запятой (;) в этой строке, что в конечном итоге вызовет ошибку.
Пример: Таким образом, приведенный выше код будет интерпретироваться JS как
Javascript
const Hey =
'hey'
;
const namaste =
'namaste'
;
const heyNamaste = Hey +
' '
+ namaste[
'h'
,
'e'
,
'y'
].forEach((char) => console.log(char))
Вывод: Итак, в заключение, если вы хотите избежать таких ошибок, вам следует использовать точки с запятой каждый раз, но, поскольку JS дает привилегию избегать их постоянного использования, следует знать правила, которые он использует для добавления точки с запятой, чтобы любая нежелательная ошибка можно избежать.