Am'am vazut diferite dezvoltatorii includ punct și virgulă după funcții în javascript și unele am't. Care este cel mai practica?
function weLikeSemiColons(arg) {
// bunch of code
};
sau
function unnecessary(arg) {
// bunch of code
}
Punct și virgulă după declarații de funcții sunt nu este necesar.
Gramatica o FunctionDeclaration
este descris în caietul de sarcini ca asta:
function Identifier ( FormalParameterListopt ) { FunctionBody }
Nu's nici o virgulă din punct de vedere gramatical necesar, dar s-ar putea întreba de ce?
Punct și virgulă pentru a servi separat declarații de la fiecare alte, și o FunctionDeclaration
nu este o declarație.
FunctionDeclarations
sunt evaluate înainte cod intră în execuție, hoisting este un cuvânt comun folosit pentru a explica acest comportament.
Termenii "declarație funcție" și "funcția declarație" sunt de multe ori în mod eronat folosite alternativ, pentru că nu există nici o funcție declarație descrise în caietul de sarcini ECMAScript, cu toate acestea, există unele implementari care includ o funcție declarație în gramatică, în special Opera - dar din nou, aceasta este non-standard.
Cu toate acestea punct și virgulă sunt întotdeauna recomandat în cazul în care utilizați FunctionExpressions
, de exemplu:
var myFn = function () {
//...
};
(function () {
//...
})();
Dacă omiteți virgulă după prima funcție în exemplul de mai sus, veți obține complet rezultate nedorite:
var myFn = function () {
alert("Surprise!");
} // <-- No semicolon!
(function () {
//...
})();
Prima funcție va fi executat imediat, pentru că parantezele din jurul a doua, va fi interpretat ca "Argumente" de un apel de funcție.
Recomandat prelegeri:
FunctionDeclaration
vs FunctionExpression
)JS Scame este de-facto convenție, și se spune că nici o virgulă după corpul funcției. Vezi "punct și Virgulă" secțiune.
Doar depinde de preferințele dumneavoastră. Aș vrea să închei linii de cod cu semi două puncte pentru că am'm folosit pentru Java, C++, C#, etc, asa ca am folosi aceleași standarde de codificare în javascript.
Eu nu't de obicei end funcție declarații în semi două puncte, deși, dar asta e doar preferinta mea.
Browsere va rula oricum, dar poate într-o zi au'll veni cu unele standarde mai stricte care reglementează acest lucru.
Exemplu de cod mi-ar scrie:
function handleClickEvent(e)
{
// comment
var something = true; // line of code
if (something) // code block
{
doSomething(); // function call
}
}
L's de fapt mai mult decât o problemă de convenție sau de consistență.
Am'm destul de sigur că nu introducerea punct și virgulă după fiecare declarație încetinește interne parser pentru că trebuie să dau seama în cazul în care la sfârșitul declarație este. Aș vrea să am niște numere de la îndemână pentru tine de a confirma asta, dar poate poți să-l singur pe google. :)
De asemenea, atunci când sunt comprimare sau comprimare cod, o lipsa de semi-colon poate duce la o versiune minified de script care nu't face ceea ce ai vrut pentru că tot spațiul alb dispare.
Când am minified scenariile mele mi-am dat seama că am nevoie să utilizați punct și virgulă pentru funcții care începe cu semnul egal. dacă definiți o funcție ca var, da, trebuie să utilizați punct și virgulă.
nevoie de punct și virgulă
var x = function(){};
var x = new function(){};
this.x = function(){};
nu este nevoie de punct și virgulă
function x(){}
SIMPLE:
Este o practică bună să părăsească punct si virgula ;
după sfârșitul funcție de aparat dentar. Au fost considerat o bună practică de ani de zile.
Un avantaj al folosind mereu le este, dacă doriți să minify JavaScript.
Cum comprimare Javascript, ajută pentru a reduce dimensiunea fișierului de un pic.
Dar pentru ca cele mai bune practici și răspunsul de mai sus, nu este recomandat să-l folosească după o funcție de etichetă.
Dacă tu NU'T, utilizați punct și virgulă, și, dacă doriți să minify (ca o mulțime de dezvoltatori, cum ar fi să faci dacă site-ul lor servește o mulțime de JavaScript) ai putea primi tot felul de Erori/Avertismente.
//un singur fișier var o=1; var două=2; funcția tryOne(){} funcția trytwo(){}
și
//fișierul două var o=1; var două=2; funcția tryOne(){}; funcția trytwo(){};
atunci când minify atât, veți obține următoarele ca ieșire
Rețineți că comentarii sunt doar pentru ilustration //un singur fișier var o=1;var două=2;funcția tryOne(){} funcția trytwo(){}
și
//fișierul două var o=1;var două=2;funcția tryOne(){};funcția trytwo(){};