JavaScript const: Declararea constantelor în ES6. Definirea funcțiilor în JavaScript De ce sunt necesare variabile și constante

Ultima actualizare: 04/05/2018

Variabilele sunt folosite pentru a stoca date într-un program. Variabilele sunt concepute pentru a stoca unele date sau date temporare care își pot schimba valoarea în timpul funcționării. Cuvintele cheie var și let sunt folosite pentru a crea variabile. De exemplu, să declarăm variabila myIncome:

Var myIncome; // altă opțiune let myIncome2;

Fiecare variabilă are un nume. Numele este un șir aleatoriu de caractere alfanumerice, o liniuță de subliniere (_) sau un semn dolar ($), iar numele nu trebuie să înceapă cu caractere numerice. Adică, putem folosi litere, cifre și liniuțe de subliniere în nume. Cu toate acestea, toate celelalte personaje sunt interzise.

De exemplu, numele corecte ale variabilelor sunt:

$comision someVariable product_Store income2 myIncome_from_deposit

Următoarele nume sunt incorecte și nu pot fi folosite:

222lol @someVariable my%percent

De asemenea, nu puteți da nume variabilelor care se potrivesc cu cuvintele cheie rezervate. Nu există multe cuvinte cheie în JavaScript, așa că această regulă nu este greu de urmat. De exemplu, următorul nume ar fi incorect, deoarece for este un cuvânt cheie în JavaScript:

Var pentru;

Lista de cuvinte rezervate în JavaScript:

abstract, boolean, pauză, octet, caz, prinde, char, clasă, const, continua, depanator, implicit, șterge, face, dublu, altfel, enumerare, export, extinde, fals, final, în final, float, pentru, funcție, du-te, dacă, implementează, import, în, instanceof, int, interfață, lung, nativ, nou, nul, pachet, privat, protejat, public, întoarcere, scurt, static, super, comutator, sincronizat, asta, aruncă, aruncă, tranzitoriu, adevărat, încercare, tip de, var, volatil, gol, în timp ce, cu

Când denumiți variabile, rețineți că JavaScript este un limbaj sensibil la majuscule și minuscule, adică două variabile diferite sunt declarate în următorul cod:

Var myIncome; var MyIncome;

Puteți defini mai multe variabile simultan, separate prin virgule:

Var myIncome, procent, sumă; fie a, b, c;

Folosind semnul egal (numit și operator de atribuire), puteți atribui o valoare unei variabile:

venit var = 300; lasa pretul = 76;

Procesul de atribuire a unei valori inițiale unei variabile se numește inițializare.

Acum variabila venit va stoca numărul 300, iar variabila preț va stoca numărul 76.

Lucrul minunat despre variabile este că le putem schimba valoarea:

venit var = 300; venit = 400; console.log(venit); lasa pretul = 76; pret = 54; console.log(preț);

constante

Folosind cuvântul cheie const, puteți defini o constantă care, ca o variabilă, stochează o valoare, dar acea valoare nu poate fi modificată.

const rate = 10;

Dacă încercăm să îi schimbăm valoarea, vom întâlni o eroare:

const rate = 10; rata = 23; // eroare, rata este o constantă, deci nu îi putem schimba valoarea

De asemenea, este de remarcat faptul că, deoarece nu putem modifica valoarea unei constante, aceasta trebuie inițializată, adică atunci când o definim, trebuie să îi furnizăm o valoare inițială. Dacă nu facem acest lucru, atunci vom întâlni din nou o eroare:

const rate; // eroare, rata nu este inițializată

Este un set de convenții și reguli care trebuie urmate atunci când scrieți codul JavaScript. Acest acord se bazează pe documentele Sun Corporation pentru limbajul de programare Java. Dar, deoarece JavaScript nu este Java, documentul a fost rescris în raport cu limbajul JavaScript.

Valoarea pe termen lung a software-ului este direct legată de calitatea codului. În timpul existenței sale, programul trece printr-un număr mare de mâini și ochi ai dezvoltatorilor. Dacă codul programului este scris în așa fel încât să-și transmită clar structura și caracteristicile, atunci probabilitatea ca acesta să se rupă este redusă dacă îi sunt aduse modificări de către alți dezvoltatori sau de către autor însuși după o perioadă lungă de timp.

Acordurile de cod de program pot ajuta la îmbunătățirea calității rezultatelor și la reducerea probabilității de defecțiune a produsului.

Fișiere JavaScript

Programele JavaScript trebuie să fie stocate în fișiere .js.

Codul JavaScript nu ar trebui să fie încorporat în fișierele HTML decât dacă codul este specific unei sesiuni. Codul HTML crește semnificativ greutatea paginii fără posibilitatea de a o reduce prin stocarea în cache și compresie.

etichetele trebuie plasate la sfârșitul documentului ori de câte ori este posibil. Acest lucru reduce întârzierile la încărcarea paginilor html.

Indentări

Indentarea ar trebui să aibă patru spații. Prin urmare, pentru a scrie cod, trebuie să configurați editorul astfel încât filele să conțină exact această cantitate. Utilizarea atâtor caractere poate afecta dimensiunea fișierului, dar această problemă poate fi rezolvată prin comprimarea fișierului înainte de a pune produsul în funcțiune.

Lungimea liniei

Evitați liniile mai lungi de 80 de caractere. Dacă declarația nu se încadrează pe o singură linie, atunci trebuie mutată sau împărțită. Când se întrerupe o linie, următoarea linie trebuie să fie indentată cu 8 spații de la început.

Într-o abatere de la convenție, ținând cont de monitoarele și rezoluțiile moderne, lungimea liniei poate fi mărită la 120 de caractere. Editorii de cod moderni evidențiază această linie, de exemplu NetBeans, PHPStorm, iar lungimea acesteia poate fi ajustată.

Comentarii

Este necesar să încercați să descrieți complet secțiuni complexe de cod. Dezvoltatorii care se uită la codul tău, sau tu însuți după un timp, ar trebui să înțeleagă ce face acest cod. Comentariile trebuie să fie bine scrise, clare, corecte dacă comentariul nu este suficient de complet, sau și mai rău, este eronat, ceea ce poate induce în eroare dezvoltatorul, caz în care este mai bine să nu scrieți deloc un comentariu.

De asemenea, comentariile nu trebuie să descrie lucruri evidente, altfel nu vor face decât să piardă timpul cititorului.

i = 0; // Setați i la zero.

O altă proprietate utilă a comentariilor este că atunci când sunt scrise în anumite reguli, cum ar fi JSDoc, acestea pot fi folosite pentru a genera documentație de cod.

Declararea variabilelor

Toate variabilele trebuie declarate înainte de a putea fi utilizate. JavaScript nu necesită astfel de construcții, dar face programul mult mai ușor de citit și ușurează detectarea variabilelor nedeclarate care pot fi presupuse a fi globale de către interpret. Variabilele globale implicite deduse nu ar trebui să fie niciodată utilizate, toate variabilele trebuie declarate doar în mod explicit, folosind operatorul var.

Construcția var trebuie să apară pe primul loc în corpul funcției.

Este de preferat ca fiecare variabilă să fie descrisă pe o linie nouă și să poată fi adăugată cu un comentariu. Ori de câte ori este posibil, cel mai bine este să păstrați declarațiile variabilelor în ordine alfabetică.

Var currentEntry, // nivelul de intrare al tabelului selectat curent, // dimensiunea nivelului de indentare; // dimensiunea mesei

JavaScript nu are un bloc de declarare a variabilelor, la fel ca limbajele precum Pascal, dar pentru a menține ordinea în codul dvs., cel mai bine este să declarați variabile la începutul funcției.

Utilizarea variabilelor globale ar trebui să fie redusă la minimum, iar declararea implicită a variabilelor globale nu trebuie folosită deloc.

Declararea Funcțiilor

Toate funcțiile trebuie declarate înainte de a fi utilizate. Funcțiile interne pot fi declarate folosind var. Acest lucru ajută la clarificarea care variabile sunt incluse în domeniul de aplicare al funcției.

Nu ar trebui să existe spațiu între numele funcției și paranteza de deschidere a listei de parametri. Trebuie să existe un spațiu între acolada de închidere și acolada ondulată a corpului funcției. Corpul funcției în sine trebuie să fie indentat cu patru spații. Acolada dreaptă a funcției în sine trebuie să fie aliniată cu linia care conține declarația funcției.

Funcția exterioară(c, d) ( var e = c * d; funcția inner(a, b) ( return (e * a) + b; ) return inner(0, 1); )

Dacă o funcție literală este anonimă, trebuie să existe un spațiu între cuvântul funcție și paranteza de deschidere a listei de parametri. Dacă nu există spațiu, poate exista confuzie că numele funcției este funcția, ceea ce poate părea a fi o eroare la citirea codului.

Div.onclick = function (e) ( return false; ); that = ( metoda: function () ( return this.datum; ), datum: 0 );

Utilizarea funcțiilor globale ar trebui, de asemenea, redusă la minimum.

Când o funcție trebuie apelată imediat, aceasta este inclusă în paranteze. Rezultatul unei astfel de funcții va fi ceea ce funcția returnează, dar nu o referință la funcția în sine.

Colecție Var = (funcție () ( taste var = , valori = ; return (get: funcție (cheie) ( var at = keys.indexOf(key); if (la >= 0) (valori returnate; ) ), set: funcție (cheie, valoare) ( ​​var at = keys.indexOf(key); if (at = 0) ( keys.splice(at, 1); values.splice(at, 1); ) ) ); ;

Nume

Numele de variabile sau funcții pot fi compuse din 26 de caractere mari și mici (A .. Z, a ... z), 10 cifre (0 .. 9) și un caracter de subliniere. Este mai bine să evitați folosirea caracterelor internaționale, deoarece citirea și înțelegerea lor poate provoca unele dificultăți. Nu utilizați semnul $ (semnul dolar) sau (bară oblică inversă) în numele variabilelor și funcțiilor.

Nu utilizați caracterul de subliniere _ ca prim caracter al numelui. Această tehnică este uneori folosită pentru a desemna variabile sau funcții locale (private), dar nu face ca aceste variabile să fie private. Dacă codul dvs. trebuie să utilizeze membri privați, ar trebui să evitați expunerea acestor date.

Majoritatea variabilelor și funcțiilor trebuie să înceapă cu o literă mică.

Funcții de constructor care folosesc un operator pentru a lucra nou trebuie să înceapă cu o literă mare. Când compilați un script JavaScript sau verificați codul cu instrumente terțe, vor fi afișate avertismente dacă funcțiile sau numele variabilelor sunt folosite fără un construct nou. Lucrul unei funcții de constructor care nu utilizează un operator nou se va comporta complet diferit, astfel încât convenția de a scrie astfel de funcții cu majuscule este într-o oarecare măsură o protecție împotriva erorii.

Variabilele globale, care poartă semnificația constantelor sau spațiilor de nume, trebuie scrise cu majuscule, deoarece nu există astfel de constructe în JavaScript.

Operatori Operatori simpli

Fiecare linie trebuie să conțină cel mult o declarație. Fiecare instrucțiune simplă trebuie să se încheie cu punct și virgulă (;). Rețineți că instrucțiunea de atribuire căreia este alocat literalul funcției trebuie să se încheie cu punct și virgulă.

În JavaScript, orice expresie va fi un operator. Acest lucru poate ascunde unele erori dacă aceste instrucțiuni folosesc punct și virgulă la sfârșit. De exemplu, acesta ar putea fi un șir obișnuit cu punct și virgulă la sfârșit, care nu va cauza nicio eroare sau nu va rupe scriptul.

Operatori compusi

Declarațiile compuse sunt instrucțiuni care conțin liste cu alte instrucțiuni incluse în () (acolade).

  • Declarațiile din instrucțiunile compuse trebuie să fie indentate cu patru spații.
  • ((Acolada stângă) trebuie să fie la sfârșitul liniei unde începe instrucțiunea compusă.
  • ) (Acolada din dreapta) trebuie plasată pe o nouă linie și indentată pentru a se alinia cu începutul liniei care conține acolada ((acolada stângă) corespunzătoare.
  • Acoladele ar trebui să fie prezente ori de câte ori este posibil, acest lucru este necesar pentru a evita erorile accidentale și pentru a face codul mai ușor de citit.
Etichete

Disponibilitatea etichetelor pauzăŞi continuaîn cod poate fi folosit numai în constructe în timp ce, pentru, doŞi comutator.

declarație de returnare

Valoarea unei instrucțiuni return nu trebuie să fie niciodată inclusă în () (paranteze). Valoarea acestei instrucțiuni trebuie să înceapă pe aceeași linie cu instrucțiunea return pentru a evita inserarea accidentală a punctului și virgulă la interpretarea sau comprimarea codului.

declarația dacă

Construcția if ar trebui să arate astfel:

If (condiție) ( declarații ) if (condiție) ( declarații ) else ( declarații ) if (condiție) ( declarații ) else if (condiție) ( declarații ) else ( afirmații)

pentru declarație

Instrucțiunea for trebuie să aibă următoarea structură:

Pentru (inițializare; condiție; actualizare) ( instrucțiuni ) pentru (variabilă în obiect) ( dacă (filtru) ( instrucțiuni ) )

Prima formă de notație este folosită pentru a lucra cu tablouri și bucle cu un număr dat de iterații.

A doua formă este folosită atunci când lucrați cu obiecte. Trebuie să rețineți că membrii care sunt adăugați la prototipul obiectului vor fi incluși în enumerare. Pentru a face acest lucru, trebuie să utilizați o verificare folosind metoda hasOwnProperty pentru a distinge adevăratele proprietăți ale obiectului:

Pentru (variabilă în obiect) (if (object.hasOwnProperty(variabilă)) (instrucțiuni) )

în timp ce declarația

Construcția while ar trebui să arate astfel:

În timp ce (condiție) ( declarații )

face operator

Declarația do ar trebui să arate astfel:

Do ( statements ) while (condiție);

Spre deosebire de alte afirmații compuse declarate, aceasta trebuie întotdeauna să se termine; (punct şi virgulă).

declarație switch

Declarația switch ar trebui să arate astfel:

Comutare (expresie) (expresie caz: declarații implicit: instrucțiuni)

Fiecare ramură case trebuie să fie pe aceeași linie cu o instrucțiune switch. Acest lucru evită indentarea excesivă.

Fiecare grup de instrucțiuni case, cu excepția implicită, trebuie să se încheie cu pauză, reveni sau arunca.

încercați declarația

Declarația try ar trebui să arate astfel:

Try ( statements ) catch (variable) ( statements ) try ( statements ) catch (variable) ( statements ) finally ( statements )

Continuați operatorul

Evitați utilizarea instrucțiunii continue. Această instrucțiune tinde să ascundă fluxul de execuție al funcției.

Declarația cu

Operatorul With nu trebuie utilizat.

Spații

Liniile goale îmbunătățesc lizibilitatea prin împărțirea codului în secțiuni care sunt conectate logic.

Spațiile trebuie utilizate în următoarele cazuri:

  • Un cuvânt cheie urmat de ((paranteza din stânga) trebuie despărțit printr-un spațiu
    în timp ce (adevărat) (
  • Nu ar trebui să existe spațiu între numele funcției și ((paranteza din stânga) în construcția funcției f(). Acest lucru ajută la distingerea între cuvintele cheie și apelul funcției.
  • Toți operatorii binari, cu excepția . (puncte), ((paranteză din stânga) și [ (paranteză din stânga) trebuie separate printr-un spațiu.
  • Fiecare; (punct și virgulă) din partea de control a unei clauze for trebuie să fie separate printr-un spațiu.
  • Spațiile trebuie să urmeze fiecare virgulă.

În proiectele mari, devine foarte dificil să se țină cont de toate aceste convenții fără utilizarea instrumentelor auxiliare și a editorilor de cod. Prin urmare, pentru propriul control, este nevoie să achiziționați astfel de instrumente.

JSLint. Instrument pentru verificarea codului JavaScript

Limbajul JavaScript este un limbaj interpretat care nu are un compilator propriu, în comparație cu limbaje precum Java, C++, care ar verifica calitatea codului scris la construirea unui proiect sau înainte de lansare, ținând cont de diverse nuanțe, precum ca variabile declarate, dar neutilizate, cod de secțiuni neoptimizate, punct și virgulă lipsă etc. Prin urmare, ar fi util să existe un instrument care să efectueze o verificare și să semnaleze dezvoltatorului diverse erori.

Un astfel de instrument este JSLint. JSLint este un program scris în JavaScript al cărui scop este de a găsi probleme în programele JavaScript.

Când C era încă un limbaj tânăr, existau mai multe erori comune de programare care nu erau surprinse de compilatoarele primitive, așa că a fost dezvoltat un program numit lint pentru a scana un fișier sursă pentru erori.

Când limbajul a atins un anumit nivel de perfecțiune, compilatorii au început să-l verifice mai bine și să emită mesaje adecvate, după care nu mai era nevoie de programul lint.

JavaScript este o limbă tânără. Inițial, a fost folosit pentru a efectua sarcini mici în paginile web, sarcini pentru care Java era prea grea și greoaie. În zilele noastre, JavaScript joacă un rol important în web și este folosit în proiecte mari și complexe. Multe dintre caracteristicile care au fost implementate în limbaj au fost menite să simplifice, dar atunci când proiectele devin mai mari și mai complexe, există motive de îngrijorare cu privire la o astfel de funcționalitate. Prin urmare, programele JavaScript au nevoie de un instrument precum puf.

JSLint ia codul sursă JavaScript și îl scanează. Când se găsește o problemă, este returnat un mesaj cu descrierea și locația sa aproximativă în fișierul sursă. Problema poate să nu fie neapărat o eroare de sintaxă, de asemenea, se efectuează verificări de stil și conformitatea cu structura codului.

Variabile globale

Cea mai mare problemă în JavaScript este dependența de variabilele globale care au fost declarate implicit. Dacă o variabilă nu este declarată folosind constructul var, atunci în JavaScript această variabilă devine globală, ca proprietate a obiectului fereastră. Din acest motiv, pot apărea diferite tipuri de erori.

JSLint necesită ca toate variabilele și funcțiile să fie declarate înainte de a fi utilizate sau apelate. Acest lucru vă permite să detectați cu ușurință variabilele globale și este, de asemenea, o bună practică și ușurează citirea codului sursă al programului.

Uneori, un fișier depinde de variabile și funcții globale care sunt definite în altă parte. Pentru a face acest lucru, este necesar să descrieți astfel de variabile într-o directivă specială /*global */, care indică lui JSLint că sunt folosite în alte fișiere și nu sunt eronate. Variabilele dintr-o directivă sunt o listă de nume separate prin virgule. Fiecare nume poate include două puncte urmate de un indicator adevărat sau fals, indicând dacă variabila a fost destinată fișierului respectiv sau nu.

Unele variabile globale pot fi deja definite inițial. Să presupunem un browser, atunci când predefinim proprietățile globale standard care sunt furnizate de browser, cum ar fi documentŞi addEventListener.

/*global clearInterval: fals, clearTimeout: fals, document: fals, eveniment: fals, cadre: fals, istoric: fals, Imagine: fals, locație: fals, nume: fals, navigator: fals, Opțiune: fals, părinte: fals , ecran: false, setInterval: fals, setTimeout: fals, fereastra: fals, XMLHttpRequest: fals */

Inclusiv consola, alertă, funcții care pot fi redefinite la nivel global, sau care pot fi extinse, sau pe care este indicat să le evitați în produsul final.

/*alertă globală: fals, confirmare: fals, consolă: fals, Depanare: fals, opera: fals, prompt: fals, WSH: fals */

Punct şi virgulă

JavaScript folosește o sintaxă asemănătoare C care necesită utilizarea punctului și virgulă pentru a delimita instrucțiunile. În JavaScript, plasarea unui punct și virgulă la sfârșitul fiecărei instrucțiuni este opțională, puteți utiliza în schimb un flux de rând, iar acest cod va funcționa pentru browserul web, dar această abordare poate provoca erori.

JSLint se așteaptă ca fiecare instrucțiune să se termine; (punct și virgulă), excepțiile în unele situații pot fi numai for, function, if, switch, try și while.

Virgulă

Operatorul virgulă poate duce la expresii prea complexe și poate, de asemenea, masca unele erori de programare.

JSLint se așteaptă să vadă utilizarea unei virgule ca separator, dar nu ca instrucțiune (cu excepția părților de inițializare și incrementare ale unei instrucțiuni).

Domeniul de aplicare

În multe limbi, un bloc își definește domeniul de aplicare. Variabilele declarate în acest bloc nu sunt vizibile în afara acestuia.

În JavaScript, blocurile nu definesc domeniul de aplicare. Domeniul de aplicare este definit numai în cadrul funcției. O variabilă definită într-o funcție va fi vizibilă peste tot în acea funcție. Blocurile din JavaScript pot deruta programatorii experimentați din alte limbi în acest sens, datorită sintaxei lor similare, ceea ce poate duce, în consecință, la erori.

În limbajele blocate, se recomandă, în general, declararea variabilelor în locul în care sunt utilizate direct. Dar, deoarece JavaScript nu are domeniul de aplicare al blocului, este corect să declarați toate variabilele în partea de sus a funcției. Se recomandă utilizarea unui operator var per funcție. Această recomandare poate fi dezactivată folosind opțiunea vars.

Blocuri necesare

JSLint presupune că instrucțiunile if, while, do și for conțin paranteze, indiferent de câți operatori sunt prezenți în acele constructe.

JavaScript permite următorul mod de scriere:

if (condiție) declarație;

Această formă de notație este cunoscută pentru a introduce erori în proiecte. Prin urmare, JSLint sugerează utilizarea următoarei notații:

Dacă (condiție) ( declarații; )

Experiența dezvoltatorilor arată că această formă de înregistrare este mai rezistentă la erori.

pentru in

O buclă for in este folosită pentru a lista toate proprietățile unui obiect. Dar și cu ajutorul acestui ciclu sunt vizualizate absolut toate proprietățile, inclusiv cele care au fost moștenite prin prototip. Este un efect secundar rău atunci când obținem o metodă ca proprietate. Dacă o astfel de buclă este scrisă fără a fi conștientă de această situație, atunci această secțiune de cod poate provoca o eroare.

Corpul buclei ar trebui să fie înfășurat într-o instrucțiune if care testează o proprietate a obiectului pentru a exclude proprietățile prototipului, de exemplu:

Pentru (nume în obiect) ( dacă (object.hasOwnProperty(nume)) ( .... ) )

În cele mai multe cazuri, acest operator trebuie evitat complet. Cel mai bine este să vă bazați pe metode precum Object.keys și Array.prototype.forEach.

comutator

O greșeală comună într-o instrucțiune switch este uitarea de a plasa pauză după constructul case. JSLint se așteaptă ca fiecare instrucțiune case să se termine cu o pauză, returnare sau aruncare. Fiecare construct de caz va fi aliniat cu o instrucțiune switch.

var

JavaScript vă permite să definiți var oriunde într-o funcție. JSLint în acest caz este mai strict cu privire la astfel de definiții.

JSLint se așteaptă ca constructul var să fie declarat o singură dată și înainte de a fi folosit.

JSLint se încruntă în privința utilizării constructelor var în paranteze, deoarece acestea nu au propriul domeniu de aplicare.

cu

Această construcție a fost inițial destinată să ofere acces rapid la proprietățile obiectelor imbricate profund. Utilizarea acestui construct poate duce la confuzie între utilizarea variabilelor și proprietăților, ceea ce poate duce la un comportament imprevizibil al programului. Prin urmare, este mai bine să nu utilizați niciodată acest operator.

== și!=

Operatorii AND != efectuează o distribuție de tip înainte de comparare. Acest lucru este rău, deoarece diverse construcții, de exemplu, „trn” == 0 vor fi adevărate. Acest lucru poate masca erorile. JSLint nu poate determina în mod fiabil dacă utilizarea == este justificată în prezent, deci este întotdeauna mai bine să folosiți comparații fără turnare implicită de tip, și anume === și !==.

Folosind opțiunea eqeq, puteți dezactiva verificarea acestui operator.

++ și --

JSLint este împotriva utilizării acestor operatori. Puteți activa utilizarea lor folosind opțiunea plusplus.

Operații cu biți

JavaScript nu are un tip Integer, dar are operatori pe biți. Operatorii pe biți convertesc operanzii în virgulă mobilă în numere întregi și invers, deci nu sunt la fel de eficienți ca în C sau în alte limbaje. Ele sunt rareori utile în aplicațiile browser. Asemănarea cu operatorii logici poate masca unele erori de programare. Opțiunea pe biți permite utilizarea acestor operatori.

Eval este rău

Funcția eval (și rudele sale setTimeout și setInterval) oferă acces la compilatorul JavaScript. Acest lucru este uneori necesar, dar de cele mai multe ori indică un stil de programare foarte slab. Funcția eval este cea mai greșită caracteristică a JavaScript.

Constructori și noi

Constructorii sunt funcții care sunt destinate a fi utilizate cu noul operator. Acest prefix creează un nou obiect bazat pe prototipul funcției și asociază acel obiect funcție cu variabila atribuită. Dacă neglijați să utilizați operatorul nou pentru funcția de constructor, rezultatul returnat nu va fi exact cel așteptat.

JSLint impune convenția conform căreia funcțiile de constructor trebuie să aibă nume a căror prima literă este majuscule, altfel va fi considerată o eroare de validare dacă funcția este apelată cu noul operator.

Utilizarea noului operator cu obiecte precum Number, String, Boolean va fi considerată o eroare în timpul verificării.

Când verificați un astfel de nou construct de obiect, JSLint va presupune că este invalid și este mai bine să utilizați notația scurtă - ().

Opțiuni

JSLint oferă mai multe opțiuni care controlează modul în care funcționează. Într-o aplicație web JSLint, opțiunile sunt selectate folosind casete de selectare și două câmpuri.

Când JSLint este apelat ca funcție, este nevoie de un parametru - un obiect opțiuni care vă permite să specificați un subset acceptabil de JavaScript. Pe o pagină web, versiunea http://www.JSLint.com a JSLint face acest lucru automat.

Opțiunile pot fi, de asemenea, setate într-un script folosind directiva /*JSLint*/:

/*jslint nomen: true, debug: true, evil: false, vars: true */

Descriere Opţiune Sens
Tolerează expresiile de atribuire cur adevărat dacă atribuirea ar trebui permisă în afara poziției declarației.
Ignorarea operatorilor de biți pe biți true dacă operatorii pe biți nu ar trebui testați
Permite funcțiile browserului browser adevărat, variabilele globale standard ale browserului sunt luate în considerare
Permiteți expresii Google Closure închidere adevărat dacă adnotările Google Closure ar trebui permise
Permite continuarea continua adevărat, astfel încât utilizarea lui countinue este ignorată
Propunerea CouchDB canapea adevărat dacă doriți ca funcțiile CouchDB să fie considerate globale
Permite debgger depanare adevărat dacă instrucțiunea de depanare ar trebui permisă
Permite consola, alertă dezvolta true dacă opțiunea browser nu este setată și acești operatori trebuie să fie permisi
Permite == și != eq adevărat dacă ar trebui permise operatorii == și !=
Permite evaluarea rău adevărat dacă eval ar trebui să fie permis
Spații și indentare indentare Numărul de spații utilizate pentru indentare (implicit 4)
Numărul maxim de erori maxerr Numărul maxim de avertismente pentru un raport de scanare (implicit 50)
Lungimea maximă a liniei maxlen Numărul maxim de caractere pe linie
Folosind majuscule la începutul unui cuvânt din numele constructorului newcap adevărat dacă sunt necesare primele litere ale numelor funcțiilor de constructor
Luați în considerare Node.js nodul adevărat dacă Node.js ar trebui să ia în considerare variabilele globale
Permiteți liniuța _ în identificatori nomen adevărat dacă astfel de variabile nu ar trebui permise
Oprirea la prima greșeală trecerea adevărat dacă scanarea ar trebui să se oprească la prima eroare
Permite ++ și -- plusplus adevărat dacă utilizarea ++ sau -- ar trebui permisă
Permite lipsa „utilizare strictă” la începutul unei funcții neglijent adevărat, astfel încât inserarea liniei „utilizați strict” este opțională
Permite comentarii TODO tot adevărat, pentru a nu reacționa la comentariile TODO
Permite parametrii neutilizați unparam adevărat, nu afișați avertismente despre parametrii neutilizați
Permite mai multe var într-o funcție vars adevărat, pentru utilizarea multiplă a var într-o funcție
Permite spații albe murdare alb adevărat pentru a ignora spațiile murdare

Variabile și constante în JavaScript. Declararea variabilelor și atribuirea de valori acestora. Variabile globale și locale. Folosind constante

Declararea variabilelor în JavaScript

Numele de variabile în JavaScript pot consta din litere, cifre, semnul $ și semnul _, iar numele variabilei nu poate începe cu un număr. Rețineți că JavaScript este sensibil la majuscule și minuscule, iar variabilele a1 și A1 sunt variabile diferite. Nu este recomandat să utilizați chirilic, deși este posibil.
Variabilele în JavaScript sunt declarate cu cuvântul cheie var:

Var Peremennaya_1 var Peremennaya_2

Nu este recomandat să folosiți variabile în JavaScript fără declarație. Acest lucru este posibil, dar poate duce la erori.

Atribuirea de valori variabilelor

Atribuirea unei valori variabilelor declarate în JavaScript:

Peremennaya_1 = 25 Peremennaya_2 = „Textul atribuit este inclus între ghilimele drepte”

Puteți atribui o valoare variabilelor imediat după declarare:

Var Peremennaya_1 = 25 var Peremennaya_2 = "Textul atribuit este cuprins între ghilimele drepte"

Valoarea unei variabile în JavaScript se poate modifica în timpul execuției programului. Când scrieți text într-o variabilă, aceasta trebuie inclusă între ghilimele drepte.

Variabile locale și globale

Dacă o variabilă este declarată în interiorul unei funcții, atunci este locală și va fi accesibilă (vizibilă) numai în cadrul acestei funcții. Când o funcție iese, variabilele locale din JavaScript sunt distruse, astfel încât să puteți utiliza variabile cu același nume în diferite funcții.

Dacă o variabilă este declarată în afara funcțiilor, atunci este globală și va fi disponibilă (vizibilă) în toate funcțiile din pagină. Variabilele globale sunt distruse în JavaScript când pagina este închisă.

Constante în JavaScript

Constantele sunt concepute pentru a face mai ușor să lucrați cu codul atunci când trebuie să utilizați valori sau expresii repetate. Este suficient să setați valoarea constantei o dată și o puteți folosi cât doriți, inserând-o în codul programelor dvs. JavaScript nu are un cuvânt cheie pentru a declara constantele sunt utilizate în loc de constante. Pentru a distinge constantele de variabile, acestea sunt de obicei notate cu majuscule, folosind un caracter de subliniere dacă este necesar:

Var DRUG_CHELOVEKA = "Câine"

Exemplul dat de constantă nu este complet complet, deoarece cuvântul „câine” este deja ușor de reținut și de inserat acolo unde este necesar. Puteți folosi constante în JavaScript pentru a înregistra și a insera valori mai complexe, cum ar fi coduri greu de reținut, seturi de caractere, text lung, adrese web, adrese de e-mail, numere de telefon și diverse cote.

În JavaScript, constantele pot fi rescrise ca variabile, dar dacă faceți acest lucru, atunci sensul constantelor se pierde.

În acest articol, veți învăța cum să definiți constante în JavaScript folosind cuvântul cheie const.

ES6 oferă o nouă modalitate de a declara constante folosind cuvântul cheie const. Cuvântul cheie const creează o referință numai în citire la o valoare.

Const VARIABLE_NAME = valoare;

Prin convenție, identificatorii constanti în JavaScript sunt majuscule.

Cuvântul cheie const este similar cu cuvântul cheie let, prin aceea că creează variabile blocate, dar valorile declarate cu const nu pot fi modificate.

Variabilele declarate cu cuvântul cheie let sunt modificabile. Aceasta înseamnă că le puteți modifica oricând valorile, așa cum se arată în exemplul următor.

Fie v = 10;
v = 20;
v = v + 5;
console.log(v); // 35

Cu toate acestea, variabilele create cu cuvântul cheie const sunt imuabile. Cu alte cuvinte, nu le puteți reatribui la valori diferite. Încercarea de a reatribui o variabilă constantă va avea ca rezultat o TypeError.

TAX constant = 0,1;
TAXA = 0,2 ; //TypeError

În plus, o variabilă care este declarată folosind cuvântul cheie const trebuie inițializată imediat cu o valoare. Următorul exemplu generează o SyntaxError din cauza lipsei unui inițializator într-o declarație de variabilă constantă.

Const RED; // SyntaxError

După cum am menționat mai devreme, la fel ca variabilele declarate cu cuvântul cheie let, variabilele declarate cu cuvântul cheie const au domeniul de aplicare al blocului.

Asta e tot, în articolul următor vom vorbi despre utilizarea cuvântului cheie const cu literalmente obiect în JavaScript.

De la autor: Poate că acest lucru va fi surprinzător, dar JavaScript a lipsit de mult suport pentru constante, adică. valori înregistrate care nu se modifică pe parcursul execuției întregului script. În absența oricăror alternative, majoritatea constantelor au fost declarate folosind variabile.

Un exemplu de declarare a unei constante folosind o variabilă:

var DAYSINWEEK = 7;

var DAYSINWEEK = 7 ;

Acest lucru este atât periculos, cât și nepractic, deoarece vă permite să schimbați valoarea variabilei DAYSINWEEK din scriptul dvs. în orice moment. Dezvoltatorii au venit cu o varietate de moduri de a distinge variabilele care sunt aparent constante de variabilele obișnuite în JavaScript, variind de la denumirea variabilelor NUMAI cu LITTRE MAJUSCULE (cea mai bună practică) până la soluții despre care voi vorbi mai târziu. Din fericire, cea mai recentă versiune a ECMAScript (o specificație care este un standard) a introdus o constantă reală:

JavaScript. Pornire rapidă

const DAYSINWEEK = 7;

const DAYSINWEEK = 7 ;

Și acum DAYSINWEEK poate fi accesat ca variabilă, dar nu vei putea niciodată să-i schimbi valoarea:

console.log(DAYSINWEEK); > 7 ZILE ÎN SĂPTĂMÂNĂ = 8; > eroare

consolă. log(DAYSINWEEK);

DAYSINWEEK = 8 ;

> eroare

Odată ce o constantă a fost declarată (constantele trebuie inițializate cu cuvântul cheie const, urmat de un nume constant care urmează convențiile de denumire a variabilelor), numele acesteia va fi rezervat: nu mai puteți denumi o variabilă DAYSINWEEK și aveți o constantă cu același nume , sau invers.

Cuvântul cheie const are suport bun în browserele moderne: IE11 și Spartan, Firefox 31+, Opera 12+, Safari 5.1.7+, iOS 7 și versiuni ulterioare, împreună cu Chrome 36+. Cu toate acestea, există câteva avertismente importante:

Chrome nu acceptă afișarea unei erori atunci când încercați să suprascrieți o constantă. Valoarea constantei nu va fi modificată în niciun caz, dar un dezvoltator neexperimentat poate crede că noua valoare a fost aplicată deoarece nu a fost scoasă nicio eroare.

JavaScript. Pornire rapidă

Aflați elementele de bază ale JavaScript cu un exemplu practic despre cum să creați o aplicație web.

Constantele nu creează un domeniu nou în Webkit. Aceste. constantele pot fi vizibile în afara domeniului curent.

Firefox 35 și versiunile anterioare vă permit să schimbați din mers valoarea unui const. Acest lucru a fost remediat în Firefox 36+.

De asemenea, trebuie remarcat faptul că problemele cu Webkit apar numai dacă nu se utilizează modul strict (ceea ce va fi discutat într-un articol viitor).

Este posibil să folosiți cuvântul cheie const în proiecte reale acum?

Alegerea de a utiliza sau nu cuvântul cheie const în codul dvs. va depinde de mai mulți factori: cel mai important lucru este ce versiuni de browsere folosesc vizitatorii site-ului dvs., deoarece utilizarea cuvântului cheie const va fi considerată o eroare în browsere precum IE10. . Dacă doriți să utilizați cuvântul cheie const în dezvoltare, dar nu sunteți pregătit să îl utilizați în proiecte reale, atunci aveți mai multe opțiuni:

Opțiunea 1: utilizați un transpiler („transpiler”)

Transpilerii, după cum sugerează și numele, vă transformă codul în timpul compilării într-o altă limbă: în acest caz, de la versiunea specificației ES6 (care a introdus cuvântul cheie const) la ES5. Acest lucru vă permite să scrieți cod într-o versiune mai nouă a limbii, dar proiectul real va folosi o versiune care este compatibilă cu o gamă mai largă de browsere. Eddie Osmani a compus