În limbajele din familia C, punctul și virgulă denotă sfârșitul unei declarații. Spre deosebire de alte limbaje asemănătoare C, JavaScript nu impune acest lucru. În schimb, punctul și virgulă este opțional, iar interpretul adaugă punctul și virgula lipsă – mai ales la sfârșitul unei linii – pentru a termina instrucțiunile. Făcând acest lucru, el ia în considerare reguli complexe. Acest lucru poate intra în conflict cu scopul propus.
Dacă scrieți codul fără punct și virgulă la sfârșitul instrucțiunilor, trebuie să vă ocupați de situațiile problematice. Iată câteva reguli de bază pentru a evita problemele. Dar sunt mult mai multe reguli.
- Expresia după unul dintre cuvintele cheie
return
,
, sau
throwyield
trebuie să fie pe aceeași linie cu cuvântul cheie însuși. - Identificatorul etichetei după
break
saucontinue
trebuie să fie pe aceeași linie cu cuvântul cheie. - Dacă o linie începe cu unul dintre
(
,[
,
,
`+
,-
, sau/
, se încheie linia anterioară cu punct și virgulă.
În timp ce ASI ar face codul mai ușor de scris (nu este nevoie să tastați toate acele puncte și virgulă), în practică, lipsa punctului și virgulă face programul mai greu de depanat. Din acest motiv, este recunoscută universal ca cea mai bună practică de a folosi oricum punct și virgulă la sfârșitul declarațiilor. Cu toate acestea, existența ASI poate crea în continuare unele erori care sunt greu de depanat dacă nu știi ce să cauți.
Exemple
Cod introdus .. | .. interpretat ca | cod intenționat |
---|---|---|
return
2a + 1
|
return;
2a + 1;
|
return 2*a + 1;
|
function getObject() {
return
{
// câteva linii
}
}
|
function getObject() {
return;
{
// câteva linii
};
}
|
function getObject() {
return {
// câteva linii
};
}
|
i
++
|
i;
++;
|
i++;
|
În primul caz, programatorul a intenționat să fie returnat 2*a + 1; în schimb, codul a returnat undefined
. În mod similar, în al doilea caz, programatorul a intenționat să returneze liniile cuprinse între acolade {}
, dar codul a returnat undefined
. Datorită acestei ciudățeni în JavaScript, este considerată cea mai bună practică să nu existe niciodată întreruperi de linii într-o declarație și să nu ai niciodată acolada de deschidere pe o linie separată.
(Include texte din Wikibooks traduse și adaptate de Nicolae Sfetcu)
Lasă un răspuns