kzen.dev
  • Întrebări
  • Tag-uri
  • Utilizatori
Notificări
Recompense
Înregistrare
După înregistrare, veți primi notificări despre răspunsurile și comentariile la întrebările DVS.
Logare
Dacă aveţi deja un cont, autentificaţi-vă pentru a verifica notificările noi.
Aici vor fi recompensele pentru întrebările, răspunsurile și comentariile adăugate sau modificate.
Mai mult
Sursă
Editează
 macca1
macca1
Question

De ce ar trebui să utilizați un caracter punct și virgulă după fiecare funcție în javascript?

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
}
277 2009-12-02T17:51:50+00:00 9
 Machavity
Machavity
Întrebarea editată 1 martie 2017 в 1:35
Programare
javascript
syntax
Solution / Answer
 CMS
CMS
2 decembrie 2009 в 5:55
2009-12-02T17:55:49+00:00
Mai mult
Sursă
Editează
#9764605

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:

  • Nume funcția expresii demistificat (marele articolul)
  • Explica JavaScript este încapsulat funcție anonim syntax (mai mult pe FunctionDeclaration vs FunctionExpression)
 Community
Community
Răspuns editat 23 mai 2017 в 12:26
420
0
Gabe Moothart
Gabe Moothart
2 decembrie 2009 в 6:01
2009-12-02T18:01:55+00:00
Mai mult
Sursă
Editează
#9764606

Eu le folosesc după funcție-ca-declarații de variabile:

var f = function() { ... };

dar nu după stil clasic definiții:

function f() {
    ...
}
38
0
David Hedlund
David Hedlund
2 decembrie 2009 в 5:55
2009-12-02T17:55:43+00:00
Mai mult
Sursă
Editează
#9764604

JS Scame este de-facto convenție, și se spune că nici o virgulă după corpul funcției. Vezi "punct și Virgulă" secțiune.

Jonathan Arbely
Jonathan Arbely
Răspuns editat 16 ianuarie 2018 в 5:22
20
0
Josh Stodola
Josh Stodola
2 decembrie 2009 в 5:54
2009-12-02T17:54:53+00:00
Mai mult
Sursă
Editează
#9764602

Rămâi consecvent! Acestea nu sunt necesare, dar eu personal le folosesc pentru că cele mai multe tehnici de minimizare se bazează pe cele semi-colon (de exemplu, Packer).

7
0
 regex
regex
2 decembrie 2009 в 5:55
2009-12-02T17:55:29+00:00
Mai mult
Sursă
Editează
#9764603

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
     }
}
5
0
 Mason
Mason
3 decembrie 2009 в 12:23
2009-12-03T00:23:08+00:00
Mai mult
Sursă
Editează
#9764608

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.

3
0
 senera
senera
21 aprilie 2017 в 8:02
2017-04-21T08:02:34+00:00
Mai mult
Sursă
Editează
#9764609

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(){}
 senera
senera
Răspuns editat 18 mai 2018 в 12:23
1
0
 Shaze
Shaze
19 februarie 2018 в 3:20
2018-02-19T15:20:18+00:00
Mai mult
Sursă
Editează
#9764610

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.

 Shaze
Shaze
Răspuns editat 18 octombrie 2018 в 8:27
0
0
 DilanTsasi
DilanTsasi
8 august 2019 в 8:34
2019-08-08T08:34:46+00:00
Mai mult
Sursă
Editează
#9764611

punct și virgulă după o funcție nu este necesar folosind sau nu, nu produce erori în program. cu toate acestea, dacă aveți de gând să minify cod, apoi folosind punct și virgulă după funcții este o idee bună. spune, de exemplu, au cod ca cea de mai jos //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(){};

0
0
Comunități asemănătoare 1
JavaScript, România - Moldova
JavaScript, România - Moldova
288 utilizatori
Comunitatea Română JavaScript: github.com/js-ro Pentru confort, opriți notificările. Parteneri: @php_ro, @python_ro, @devops_ro, @seo_ro Offtop: @holywars_ro
Deschide telegram
Adăugati o întrebare
Categorii
Toate
Tehnologii
Cultură
Viață / Artă
Stiință
Profesii
Afaceri
Utilizatori
Toate
Nou
Populare
1
ALEX EPRST
Înregistrat 14 ore în urmă
2
Daniel Gogov
Înregistrat 1 săptămână în urmă
3
工藤 芳則
Înregistrat 2 săptămâni în urmă
4
Ирина Беляева
Înregistrat 2 săptămâni în urmă
5
Darya Arsenyeva
Înregistrat 3 săptămâni în urmă
ID
JA
KO
RO
RU
ZH
© kzen.dev 2023
Sursă
stackoverflow.com
în cadrul licenței cc by-sa 3.0 cu atribuire