V tomto článku sa dozviete, ako definovať konštanty v JavaScripte pomocou kľúčového slova const.

ES6 poskytuje Nová cesta deklarácie konštánt pomocou kľúčového slova const. Kľúčové slovo const vytvára odkaz na hodnotu len na čítanie.

Const VARIABLE_NAME = hodnota;

Podľa konvencie sú konštantné identifikátory v JavaScripte veľké.

Kľúčové slovo const je podobné kľúčovému slovu let v tom, že vytvára premenné s rozsahom bloku, ale hodnoty deklarované pomocou const nemožno zmeniť.

Premenné deklarované kľúčovým slovom let sú meniteľné. To znamená, že ich hodnoty môžete kedykoľvek zmeniť, ako je znázornené v nasledujúcom príklade.

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

Premenné vytvorené pomocou kľúčového slova const sú však nemenné. Inými slovami, nemôžete ich priradiť rôzne významy. Pokus o opätovné priradenie konštantnej premennej bude mať za následok chybu TypeError.

Const TAX = 0,1;
DAŇ = 0,2 ; //TypeError

Okrem toho premenná, ktorá je deklarovaná pomocou kľúčového slova const, musí byť okamžite inicializovaná hodnotou. Nasledujúci príklad vyvoláva SyntaxError kvôli chýbajúcemu inicializátoru v deklarácii konštantnej premennej.

Const RED; // Chyba syntaxe

Ako už bolo spomenuté, rovnako ako premenné deklarované kľúčovým slovom let, aj premenné deklarované kľúčovým slovom const majú rozsah bloku.

To je všetko, v ďalšom článku si povieme o používaní kľúčového slova const s objektovými literálmi v JavaScripte.

Premenné a konštanty v JavaScripte. Deklarovanie premenných a priraďovanie hodnôt k nim. Globálne a lokálne premenné. Použitie konštánt

Deklarovanie premenných v JavaScripte

Názvy premenných v JavaScripte môžu pozostávať z písmen, číslic, znaku $ a znaku _ a názov premennej nemôže začínať číslom. Majte na pamäti, že JavaScript rozlišuje veľké a malé písmená a premenné a1 a A1 sú rôzne premenné. Neodporúča sa používať azbuku, aj keď je to možné.
Premenné v JavaScripte sú deklarované pomocou kľúčového slova var:

Var Peremennaya_1 var Peremennaya_2

Neodporúča sa používať premenné v JavaScripte bez deklarácie. Je to možné, ale môže to viesť k chybám.

Priradenie hodnôt k premenným

Priradenie hodnoty deklarovaným premenným v JavaScripte:

Peremennaya_1 = 25 Peremennaya_2 = "Priradený text je uzavretý v rovných úvodzovkách"

Hodnotu môžete premenným priradiť hneď po deklarácii:

Var Peremennaya_1 = 25 var Peremennaya_2 = "Priradený text je uzavretý v rovných úvodzovkách"

Hodnota premennej v JavaScripte sa môže počas vykonávania programu meniť. Pri písaní textu do premennej musí byť táto vložená do rovných úvodzoviek.

Lokálne a globálne premenné

Ak je premenná deklarovaná vo funkcii, potom je lokálna a bude prístupná (viditeľná) iba v rámci tejto funkcie. Keď sa funkcia ukončí, lokálne premenné v JavaScripte sa zničia, takže premenné s rovnakým názvom môžete použiť v rôznych funkciách.

Ak je premenná deklarovaná mimo funkcií, potom je globálna a bude dostupná (viditeľná) vo všetkých funkciách na stránke. Pri zatvorení stránky sa v JavaScripte zničia globálne premenné.

Konštanty v JavaScripte

Konštanty sú navrhnuté tak, aby uľahčili prácu s kódom, keď potrebujete použiť opakované hodnoty alebo výrazy. Hodnotu konštanty stačí nastaviť raz a vložením do kódu svojich programov ju môžete používať akokoľvek. JavaScript nemá kľúčové slovo na deklarovanie konštánt, namiesto konštánt sa používajú bežné premenné. Na rozlíšenie konštánt od premenných sa zvyčajne označujú veľkými písmenami, v prípade potreby pomocou podčiarknutia:

Var DRUG_CHELOVEKA = "Pes"

Uvedený príklad konštanty nie je úplne úplný, pretože slovo „Pes“ je už ľahko zapamätateľné a vložené tam, kde je to potrebné. Konštanty v JavaScripte môžete použiť na zaznamenávanie a vkladanie zložitejších hodnôt, napríklad ťažko zapamätateľné kódy, znakové sady, dlhý text, webové adresy, adresy Email, telefónne čísla, rôzne koeficienty.

V JavaScripte môžu byť konštanty prepísané ako premenné, ale ak to urobíte, význam konštánt sa stratí.

Funkcia je blok kódu, ktorý vykonáva akciu alebo vracia hodnotu. Funkcie sú vlastný kód, ktorý možno znova použiť; Preto sa vďaka funkciám programy stávajú modulárnymi a produktívnejšími.

Tento tutoriál ponúka niekoľko spôsobov, ako definovať a volať funkciu a používať parametre funkcie v JavaScripte.

Definícia funkcie

Funkcie sú definované alebo deklarované pomocou kľúčového slova function. Syntax funkcie v JavaScripte vyzerá takto:

function nameOfFunction() (
// Kód, ktorý sa má vykonať
}

Deklarácia funkcie začína kľúčovým slovom function, za ktorým nasleduje názov funkcie. Názvy funkcií sa riadia rovnakými pravidlami ako názvy premenných: môžu obsahovať písmená, čísla, podčiarkovníky a znaky dolára a často sa píšu s veľkými písmenami. Za názvom nasleduje skupina zátvoriek, ktoré možno použiť pre voliteľné parametre. Kód funkcie je obsiahnutý v zložených zátvorkách, ako napríklad príkaz for alebo if.

Ako ste si mohli všimnúť, hodnota parametra name nie je v kóde priradená, to sa deje pri volaní funkcie. Pri volaní funkcie sa ako argument odovzdá používateľské meno. Argument je skutočná hodnota, ktorá sa odovzdá funkcii (v tomto prípade používateľské meno, napríklad 8host).

// Vyvolajte funkciu pozdravu s argumentom "8host".
pozdrav("8hostiteľ");

Hodnota 8host sa odovzdá funkcii cez parameter name. Teraz bude parameter name reprezentovať túto hodnotu v tejto funkcii. Kód súboru greetUser.js vyzerá takto:

// Inicializácia vlastnej funkcie pozdravu
funkcia pozdrav(meno) (
console.log(`Ahoj, $(meno)!`);
}
// Vyvolajte funkciu pozdravu s argumentom "8host".
pozdrav("8hostiteľ");

Keď spustíte tento program, dostanete nasledujúci výstup:

Teraz viete, ako znova použiť funkciu.

Okrem parametrov môžu byť vo funkciách deklarované aj premenné. Tieto premenné sa nazývajú lokálne a existujú iba v rámci svojho funkčného bloku. Rozsah premenných určuje dostupnosť premenných; Premenné, ktoré sú definované vo vnútri funkcie, nie sú prístupné zvonku funkcie, ale možno ich použiť toľkokrát, koľkokrát sa v programe použije funkcia, ku ktorej patria.

Vracia sa hodnoty

Vo funkcii môžete použiť viac ako jeden parameter. Funkcii môžete odovzdať viacero hodnôt a vrátiť hodnotu. Vytvorte napríklad súbor sum.js a deklarujte v ňom funkciu, ktorá nájde súčet dvoch hodnôt x a y.

// Inicializácia funkcie pridávania
funkcia add(x, y) (
návrat x + y;
}

add(9, 7);

Tento kód definuje funkciu s parametrami x a y. Funkcia potom získa hodnoty 9 a 7. Spustite program:

Program spočíta výsledné hodnoty 9 a 7 a vráti výsledok 16.

Keď sa použije kľúčové slovo return, funkcia sa zastaví a vráti hodnotu výrazu. V tomto prípade prehliadač zobrazí hodnotu v konzole, ale to nie je to isté ako použitie console.log() na výstup do konzoly. Keď je funkcia zavolaná, odošle hodnotu tam, odkiaľ bola volaná. Túto hodnotu možno použiť alebo umiestniť do premennej.

Funkčné výrazy

V predchádzajúcej časti ste deklarovali funkciu, ktorá sčíta dve čísla a vráti výslednú hodnotu. Výraz funkcie môžete vytvoriť aj priradením funkcie k premennej.

Pomocou predchádzajúcej funkcie aplikujte výslednú hodnotu na premennú súčtu.

// Priraďte funkciu sčítania súčtovej konštante
const sum = funkcia add(x, y) (
návrat x + y;
}
// Vyvolajte funkciu na nájdenie súčtu
suma(20, 5);
25

Teraz je konštantný súčet funkciou. Tento výraz je možné skrátiť prevedením na anonymnú funkciu (takto sa nazývajú funkcie bez parametra name). V súčasnosti sa funkcia nazýva add, ale vo funkčných výrazoch sa názov zvyčajne vynecháva.

// Priraďte funkciu súčtovej konštante
const sum = funkcia (x, y) (
návrat x + y;
}
// Vyvolajte funkciu na nájdenie súčtu
suma(100, 3);
103

Teraz funkcia už nemá názov, stala sa anonymnou.

Výrazy pomenovaných funkcií možno použiť na ladenie.

Funkcie šípok

Doteraz boli funkcie definované pomocou kľúčového slova function. Existuje však novšia a kondenzovaným spôsobom definície funkcií sú funkcie šípok ECMAScript 6. Funkcie šípok sú reprezentované znamienkom rovnosti, za ktorým nasleduje znamienko väčšie ako: =>.

Funkcie šípok sú vždy anonymné a sú typom výrazu funkcie. Skúste vytvoriť základnú funkciu šípky na nájdenie súčtu dvoch čísel.

// Definovanie funkcie násobenia
const multiply = (x, y) => (
návrat x * y;
}

multiply(30, 4);
120

Namiesto funkcie písania môžete jednoducho použiť symboly =>.

Ak má funkcia iba jeden parameter, zátvorky možno vynechať. V nasledujúcom príklade funkcia odmocňuje x, takže ako argument potrebuje iba jedno číslo.

// Definovanie štvorcovej funkcie
konštantný štvorec = x => (
návrat x * x;
}
// Vyvolanie funkcie na nájdenie produktu
štvorec(8);
64

Poznámka: Ak funkcia šípky nemá žiadne parametre, musíte pridať prázdne zátvorky ().

Funkcie šípok, ktoré pozostávajú iba z príkazu return, možno skrátiť. Ak funkcia pozostáva iba z jedného návratového riadku, môžete vynechať zložené zátvorky a príkaz return, ako v príklade nižšie.

// Definovanie štvorcovej funkcie
const square = x => x * x;
// Vyvolanie funkcie na nájdenie produktu
štvorec(10);
100

Záver

Tento tutoriál vás zoznámi s deklarovaním funkcií, funkčných výrazov a funkcií šípok, vracaním hodnôt a priraďovaním funkčných hodnôt k premenným.

Funkcia je blok kódu, ktorý vracia hodnotu alebo vykonáva akciu.

Značky:

Keď program potrebuje uložiť hodnotu, aby ju mohol neskôr použiť, táto hodnota sa priradí premennej. Premenná je jednoducho symbolický názov pre hodnotu, ktorý poskytuje možnosť získať hodnotu podľa názvu, to znamená, že keď program zadá názov premennej, nahradí sa hodnotou.

Premenná dostala svoj názov vďaka tomu, že jej hodnotu možno meniť počas vykonávania programu.

Konštanty

Konštanta je jednoducho symbolický názov hodnoty. Konštanta umožňuje odkazovať na hodnotu podľa názvu, čo znamená, že keď program špecifikuje názov konštanty, namiesto toho sa hodnota nahradí. Konštanty slúžia na ukladanie údajov, ktoré by sa nemali meniť počas vykonávania programu.

Pred použitím konštanty je potrebné ju deklarovať. Konštanty sa deklarujú pomocou kľúčového slova const, za ktorým nasleduje názov konštanty. Aby bolo možné odlíšiť konštanty od premenných v programovom kóde, bolo dohodnuté dávať konštantám názvy napísané veľkými písmenami:

Const MAX = 10;

Po vytvorení konštanty spôsobí pokus o jej predefinovanie na premennú alebo pokus o priradenie hodnoty existujúcej konštante chybu.

Prečo sú potrebné premenné a konštanty?

Premenné a konštanty pomáhajú sprehľadniť programový kód. Pozrime sa na malý príklad:

Celková cena = 2,42 + 4,33; // Celková cena

Čísla tu môžu znamenať čokoľvek. Aby bolo jasné, čo sa tu presne zhŕňa, hodnotu 2,42 možno priradiť k premennej (alebo konštantnej) candyPrice (cena cukríkov) a 4,33 k premennej (alebo konštantnej) oilPrice (cena ropy):

Celková cena = cena cukríkov + cena oleja;

Teraz, namiesto toho, aby ste si pamätali, čo tieto hodnoty znamenajú, môžete vidieť, že skript pripočítava cenu cukríkov k cene masla.

Premenné a konštanty tiež pomáhajú šetriť čas pri ladení skriptu. Namiesto toho, aby ste všade používali rovnaký literál, môžete ho priradiť k premennej (alebo konštante) na začiatku skriptu a potom použiť premennú (alebo konštantu) namiesto literálu v celom zvyšku kódu skriptu. Ak sa neskôr rozhodne o zmene hodnoty, zmeny v kóde budú musieť byť vykonané nie na niekoľkých miestach, ale iba na jednom mieste - tam, kde bola hodnota priradená premennej (alebo konštante).

Rozsah konštánt

Pre konštanty platia rovnaké pravidlá ako pre premenné deklarované kľúčovým slovom let:

Const MAX = 5; // Globálna konštanta( const MAX = 10; // Blokovať konštantu console.log(MAX); // 10 ) console.log(MAX); // 5 foo(); // 15 console.log(MAX); // 5 funkcií foo() ( const MAX = 15; // Lokálna konštanta console.log(MAX); )

Konštanty a referenčné typy

Keď je konštante priradená hodnota referenčného typu, odkaz na hodnotu sa stane nemenným a samotná hodnota zostane meniteľná:

Const obj = (a: 5); obj.a = 10; console.log(obj.a); // 10

Ide o súbor konvencií a pravidiel, ktoré je potrebné dodržiavať pri písaní kódu JavaScript. Táto zmluva je založená na dokumentoch spoločnosti Sun Corporation pre programovací jazyk Java. Ale keďže JavaScript nie je Java, dokument bol prepísaný vzhľadom na jazyk JavaScript.

Dlhodobá hodnota softvér, je priamo závislá na kvalite kódu. Počas svojej existencie prejde program obrovským množstvom rúk a očí vývojárov. Ak je programový kód napísaný tak, že dokáže jasne vyjadriť svoju štruktúru a vlastnosti, potom sa pravdepodobnosť jeho rozbitia zníži, ak v ňom po dlhom čase urobia zmeny iní vývojári alebo samotný autor.

Dohody o programový kód, môže pomôcť zlepšiť kvalitu výstupných produktov a znížiť pravdepodobnosť zlyhania produktu.

súbory JavaScript

Programy JavaScript musia byť uložené v súboroch .js.

Kód JavaScript by nemal byť vložený HTML súbory, ak kód nie je špecifický pre jednu reláciu. HTML kód výrazne zvyšuje váhu stránky bez možnosti znížiť ju pomocou vyrovnávacej pamäte a kompresie.

značky by mali byť umiestnené na konci dokumentu vždy, keď je to možné. To znižuje oneskorenia pri načítavaní html stránok.

Vrúbky

Odsadenie by malo mať štyri medzery. Preto na písanie kódu musíte nakonfigurovať editor tak, aby karty obsahovali presne toto množstvo. Použitie tohto množstva znakov môže ovplyvniť veľkosť súboru, ale tento problém možno vyriešiť komprimáciou súboru pred uvedením produktu do prevádzky.

Dĺžka čiary

Vyhnite sa riadkom dlhším ako 80 znakov. Ak sa príkaz nezmestí na jeden riadok, musí sa presunúť alebo rozdeliť. Pri zalamovaní riadku musí byť nasledujúci riadok od začiatku odsadený o 8 medzier.

Odchylne od dohody, dané moderné monitory a rozlíšeniach, dĺžka riadku môže byť zvýšená na 120 znakov. Moderné editory kódu tento riadok zvýrazňujú, napríklad NetBeans, PHPStorm a jeho dĺžku je možné upraviť.

Komentáre

Je potrebné pokúsiť sa úplne opísať zložité časti kódu. Vývojári, ktorí sa pozerajú na váš kód, alebo vy sami po chvíli, by mali pochopiť, čo tento kód robí. Komentáre musia byť dobre napísané, jasné, správne, ak komentár nie je dostatočne úplný, alebo ešte horšie, je chybný, čo môže vývojára uviesť do omylu, v takom prípade je lepšie komentár nepísať vôbec.

Komentáre by tiež nemali popisovať samozrejmé veci, inak budú len strácať čas čitateľa.

i = 0; // Nastavte i na nulu.

Ďalší z prospešné vlastnosti komentuje, že keď sú napísané v určitých pravidlách, ako je JSDoc, môžu sa použiť na generovanie dokumentácie kódu.

Deklarovanie premenných

Všetky premenné musia byť pred použitím deklarované. JavaScript nevyžaduje takéto konštrukty, ale značne uľahčuje čítanie programu a uľahčuje detekciu nedeklarovaných premenných, ktoré môže interpret považovať za globálne. Nikdy by sa nemali používať odvodené implicitné globálne premenné; všetky premenné by sa mali deklarovať iba explicitne pomocou operátora var.

Konštrukt var musí byť na prvom mieste v tele funkcie.

Je vhodné, aby bola každá premenná opísaná na novom riadku a mohla byť pridaná s komentárom. Vždy, keď je to možné, je najlepšie uchovávať deklarácie premenných v abecednom poradí.

Var currentEntry, // aktuálne zvolená úroveň položky tabuľky, // veľkosť úrovne odsadenia; // veľkosť tabuľky

JavaScript nemá blok deklarácie premenných, ako jazyky ako Pascal, ale na udržanie poriadku v kóde je najlepšie deklarovať premenné na začiatku funkcie.

Používanie globálnych premenných by sa malo obmedziť na minimum a implicitná deklarácia globálnych premenných by sa nemala používať vôbec.

Vyhlásenie o funkcii

Všetky funkcie musia byť pred použitím deklarované. Interné funkcie možno deklarovať pomocou var. To pomáha objasniť, ktoré premenné sú zahrnuté v rozsahu funkcie.

Medzi názvom funkcie a úvodnou zátvorkou zoznamu parametrov by nemala byť žiadna medzera. Medzi uzatváracou zátvorkou a zloženou zátvorkou tela funkcie musí byť medzera. Samotné telo funkcie musí byť odsadené o štyri medzery. Správny ortéza samotná funkcia musí byť zarovnaná s riadkom obsahujúcim deklaráciu funkcie.

Funkcia vonkajšia (c, d) ( var e = c * d; funkcia vnútorná (a, b) ( návrat (e * a) + b; ) návrat vnútorná (0, 1); )

Ak je doslovná funkcia anonymná, medzi slovom funkcia a úvodnou zátvorkou zoznamu parametrov musí byť medzera. Ak nie je medzera, môže dôjsť k zámene, že názov funkcie je funkcia, čo sa môže javiť ako chyba pri čítaní kódu.

Div.onclick = funkcia (e) ( return false; ); that = ( metóda: funkcia () ( return this.datum; ), dátum: 0 );

Používanie globálnych funkcií by malo byť tiež obmedzené na minimum.

Keď sa funkcia musí volať okamžite, je uvedená v zátvorkách. Výsledkom takejto funkcie bude to, čo funkcia vráti, ale nie odkaz na funkciu samotnú.

Kolekcia var = (funkcia () ( kľúče var = , hodnoty ​​= ; return ( get: function (key) ( var at = keys.indexOf(key); if (at >= 0) ( return values; ) ), sada: funkcia (kľúč, hodnota) ( var at = kľúče.indexOf(kľúč); if (zavináč = 0) ( kľúče.splice(at, 1); hodnoty.splice(at, 1); ) ); )());

Mená

Názvy premenných alebo funkcií môžu byť zložené z 26 veľkých a malých znakov (A .. Z, a ... z), 10 číslic (0 .. 9) a podčiarknutia. Je lepšie vyhnúť sa používaniu medzinárodných znakov, pretože ich čítanie a pochopenie môže spôsobiť určité ťažkosti. V názvoch premenných a funkcií nepoužívajte $ (znak dolára) alebo (obrátené lomítko).

Nepoužívajte znak podčiarknutia _ ako prvý znak mena. Táto technika sa niekedy používa na označenie miestnych (súkromných) premenných alebo funkcií, ale v skutočnosti tieto premenné nerobí súkromnými. Ak váš kód potrebuje používať súkromných členov, mali by ste sa vyhnúť odhaleniu týchto údajov.

Väčšina premenných a funkcií musí začínať malým písmenom.

Funkcie konštruktora, ktoré na prácu používajú operátor Nový musí začínať veľkým písmenom. Pri kompilácii skriptu JavaScript alebo pri kontrole kódu pomocou nástrojov tretích strán sa pri použití funkcií alebo názvov premenných bez konštrukcie zobrazia upozornenia Nový. Práca funkcie konštruktora, ktorá nepoužíva operátor Nový sa bude správať úplne inak, takže konvencia písania takýchto funkcií s veľkým písmenom je do istej miery ochranou proti chybe.

Globálne premenné, ktoré nesú význam konštánt alebo menných priestorov, musia byť veľké, pretože v JavaScripte takéto konštrukcie neexistujú.

Operátory Jednoduché operátory

Každý riadok musí obsahovať najviac jeden príkaz. Každý jednoduchý výrok musí končiť bodkočiarkou (;). Všimnite si, že príkaz priradenia, ku ktorému je priradený literál funkcie, musí končiť bodkočiarkou.

V JavaScripte bude operátorom akýkoľvek výraz. To môže skryť niektoré chyby, ak tieto vyhlásenia používajú bodkočiarku na konci. Ako príklad by to mohlo byť pravidelný reťazec s bodkočiarkou na konci, čo nespôsobí žiadnu chybu ani neporuší skript.

Zložené operátory

Zložené príkazy sú príkazy, ktoré obsahujú zoznamy iných príkazov uzavretých v () (zložené zátvorky).

  • Príkazy v zložených príkazoch musia byť odsadené štyrmi medzerami.
  • ((ľavá zložená zátvorka) musí byť na konci riadku, kde začína zložený príkaz.
  • ) (Pravá zložená ortéza) by mala byť umiestnená Nový riadok a odsadené, aby sa zarovnali so začiatkom riadku obsahujúceho zhodu ((ľavá zložená zátvorka).
  • Všade, kde je to možné, by mali byť prítomné zložené zátvorky, je to potrebné, aby sa predišlo náhodným chybám a aby sa kód ľahšie čítal.
Tagy

Dostupnosť značiek prestávka A ďalej v kóde možno použiť iba v konštruktoch zatiaľ čo, pre, robiť A prepínač.

návratový výkaz

Hodnota príkazu return by nikdy nemala byť uzavretá v () (zátvorkách). Hodnota tohto príkazu musí začínať na rovnakom riadku ako samotný príkaz return, aby sa predišlo náhodnému vloženiu bodkočiarky pri interpretácii alebo komprimácii kódu.

ak vyhlásenie

Konštrukcia if by mala vyzerať takto:

If (podmienka) ( príkazy ) if (podmienka) ( príkazy ) else ( príkazy ) if (podmienka) ( príkazy ) else if (podmienka) ( príkazy ) else ( príkazy )

na vyjadrenie

Príkaz for musí mať nasledujúcu štruktúru:

Pre (inicializácia; podmienka; aktualizácia) ( príkazy ) pre (premenná v objekte) ( if (filter) ( príkazy ) )

Prvá forma zápisu sa používa na prácu s poľami a slučkami s daným počtom iterácií.

Druhá forma sa používa pri práci s objektmi. Musíte mať na pamäti, že členovia, ktorí sa pridajú do prototypu objektu, budú zahrnuté do enumerácie. Ak to chcete urobiť, musíte použiť kontrolu pomocou metódy hasOwnProperty na rozlíšenie skutočných vlastností objektu:

For (premenná v objekte) ( if (object.hasOwnProperty(premenná)) ( príkazy ) )

zatiaľ čo vyhlásenie

Konštrukt while by mal vyzerať takto:

Kým (stav) ( vyhlásenia )

robiť operátora

Vyhlásenie do by malo vyzerať takto:

Do ( príkazy ) while (podmienka);

Na rozdiel od iných uvedených zložených výrokov, tento musí vždy skončiť; (bodkočiarka).

príkaz prepnúť

Príkaz switch by mal vyzerať takto:

Switch (výraz) ( case výraz: príkazy predvolené: príkazy )

Každá vetva prípadu musí byť na rovnakom riadku ako príkaz switch. Tým sa zabráni nadmernému odsadeniu.

Každá skupina prípadových príkazov okrem predvolených musí končiť na prestávka, vrátiť alebo hodiť.

skúste vyhlásenie

Príkaz try by mal vyzerať takto:

Skúste ( príkazy ) chytiť (premennú) ( príkazy ) skúste ( príkazy ) chytiť (premennú) ( príkazy ) nakoniec ( príkazy )

Pokračovať operátor

Vyhnite sa používaniu príkazu pokračovať. Toto vyhlásenie má tendenciu skryť tok vykonávania funkcie.

Vyhlásenie s

Operátor With by sa nemal používať.

Priestory

Prázdne riadky zlepšujú čitateľnosť rozdelením kódu do sekcií, ktoré sú logicky prepojené.

Medzery by sa mali použiť v nasledujúcich prípadoch:

  • Kľúčové slovo, za ktorým nasleduje ((ľavá zátvorka), musí byť oddelené medzerou
    zatiaľ čo (pravda) (
  • Medzi názvom funkcie a ((ľavá zátvorka) v konštrukcii funkcie f() by sa nemala vkladať medzera. Pomáha to rozlíšiť Kľúčové slová a volanie funkcie.
  • Všetky binárne operátory okrem . (bodky), ((ľavá zátvorka) a [ (ľavá zátvorka) musia byť oddelené medzerou.
  • Každý; (bodkočiarka) v kontrolnej časti klauzuly for musí byť oddelené medzerou.
  • Za každou čiarkou musia nasledovať medzery.

Vo veľkých projektoch je veľmi ťažké zohľadniť všetky tieto konvencie bez použitia pomocných nástrojov a editorov kódu. Preto je pre vašu vlastnú kontrolu potrebné získať takéto nástroje.

JSLint. Nástroj pre Kontrola JavaScriptu kód

Jazyk JavaScript je interpretovaný jazyk, ktorý v porovnaní s jazykmi Java, C++ nemá vlastný kompilátor, ktorý by pri zostavovaní projektu alebo pred spustením kontroloval kvalitu napísaného kódu, berúc do úvahy rôzne nuansy, napr. ako deklarované, ale nepoužívané premenné, neoptimalizovaný kód sekcií, chýbajúce bodkočiarky atď. Preto by bolo užitočné mať nástroj, ktorý by vykonal kontrolu a upozornil vývojára na rôzne chyby.

Jedným z takýchto nástrojov je JSLint. JSLint je program napísaný v JavaScripte, ktorého účelom je nájsť problémy v programoch JavaScript.

Keď bol C ešte mladý jazyk, vyskytlo sa niekoľko bežných programovacích chýb, ktoré primitívne kompilátory nezachytili, a tak bol vyvinutý program s názvom lint na skenovanie chýb v zdrojovom súbore.

Keď jazyk dosiahol určitú úroveň dokonalosti, kompilátory ho začali lepšie kontrolovať a vydávať príslušné správy, po ktorých už program lint nebol potrebný.

JavaScript je mladý jazyk. Pôvodne sa používal na vykonávanie malých úloh na webových stránkach, úloh, pre ktoré bola Java príliš ťažká a neohrabaná. v súčasnosti jazyk JavaScript hrá veľkú úlohu na webe a používa sa vo veľkých a zložitých projektoch. Mnohé z funkcií, ktoré boli implementované v jazyku, boli zamerané na zjednodušenie, ale keď sa projekty stanú väčšími a zložitejšími, existuje dôvod na obavy z takejto funkčnosti. Preto JavaScript programy potrebujú nástroj ako napr vlákna.

JSLint baretka zdroj JavaScript a naskenuje ho. Keď sa nájde problém, vráti sa správa s popisom a približným umiestnením zdrojový súbor. Problémom nemusí byť nutne syntaktická chyba, vykonávajú sa aj kontroly štýlu a súlad so štruktúrou kódu.

Globálne premenné

Najviac veľký problém v JavaScripte ide o závislosť od globálnych premenných, ktoré boli deklarované implicitne. Ak premenná nie je deklarovaná pomocou konštrukcie var, potom sa v JavaScripte táto premenná stane globálnou ako vlastnosť objektu okno. Z tohto dôvodu sa môžu vyskytnúť rôzne typy chýb.

JSLint vyžaduje, aby boli všetky premenné a funkcie deklarované pred ich použitím alebo volaním. To vám umožňuje ľahko odhaliť globálne premenné a je to tiež dobrá prax a uľahčuje čítanie zdrojového kódu programu.

Niekedy súbor závisí od globálnych premenných a funkcií, ktoré sú definované inde. K tomu je potrebné takéto premenné popísať v špeciálnej direktíve /*global */, ktorá JSLintu naznačí, že sú použité v iných súboroch a nie sú chybné. Premenné v smernici sú zoznamom mien oddelených čiarkami. Každý názov môže obsahovať dvojbodku, za ktorou nasleduje príznak true alebo false, ktorý označuje, či bola premenná určená pre daný súbor alebo nie.

Niektoré globálne premenné môžu byť už na začiatku definované. Predpokladajme prehliadač, pri preddefinovaní štandardných globálnych vlastností, ktoré poskytuje prehliadač, ako napr dokument A addEventListener.

/*global clearInterval: false, clearTimeout: false, document: false, event: false, frames: false, history: false, Image: false, location: false, name: false, navigator: false, Option: false, parent: false , obrazovka: false, setInterval: false, setTimeout: false, okno: false, XMLHttpRequest: false */

Vrátane konzoly, upozornenia, funkcií, ktoré je možné globálne predefinovať, prípadne rozšíriť, alebo ktorým je vhodné sa vo finálnom produkte vyhnúť.

/*globálna výstraha: nepravda, potvrdenie: nepravda, konzola: nepravda, ladenie: nepravda, opera: nepravda, výzva: nepravda, WSH: nepravda */

Bodkočiarka

JavaScript používa syntax podobnú C, ktorá vyžaduje použitie bodkočiarok na oddeľovanie príkazov. V JavaScripte nie je potrebné umiestniť bodkočiarku na koniec každého príkazu; namiesto toho môžete použiť riadkový posuv a tento kód bude fungovať pre webový prehliadač, ale tento prístup môže viesť k chybám.

JSLint očakáva, že každý príkaz skončí; (bodkočiarka), výnimky v niektorých situáciách môžu byť len pre za výpisy, funkcia, ak, prepnúť, vyskúšať a kým.

Čiarka

Operátor čiarky môže viesť k príliš zložitým výrazom a môže tiež maskovať niektoré programovacie chyby.

JSLint očakáva použitie čiarky ako oddeľovača, ale nie ako príkazu (okrem inicializačných a prírastkových častí príkazu).

Oblasť viditeľnosti

V mnohých jazykoch blok definuje jeho rozsah. Premenné deklarované v tomto bloku nie sú viditeľné mimo neho.

V JavaScripte bloky nedefinujú rozsah. Rozsah je definovaný iba v rámci funkcie. Premenná definovaná vo funkcii bude viditeľná všade v tejto funkcii. Bloky v JavaScripte môžu v tomto ohľade zmiasť skúsených programátorov iných jazykov, pretože majú podobnú syntax, čo môže následne viesť k chybám.

V jazykoch s blokovým rozsahom sa vo všeobecnosti odporúča deklarovať premenné na mieste, kde sa priamo používajú. Ale keďže JavaScript nemá rozsah blokov, je správne deklarovať všetky premenné v hornej časti funkcie. Na každú funkciu sa odporúča použiť jeden operátor var. Toto odporúčanie je možné deaktivovať pomocou možnosti vars.

Požadované bloky

JSLint predpokladá, že príkazy if, while, do a for obsahujú zátvorky bez ohľadu na to, koľko operátorov je prítomných v týchto konštrukciách.

JavaScript umožňuje nasledujúci spôsob zápisu:

if (podmienka) vyhlásenie;

Táto forma zápisu je známa tým, že vnáša do projektov chyby. Preto JSLint navrhuje použiť nasledujúcu notáciu:

If (podmienka) ( výkazy; )

Skúsenosti vývojárov ukazujú, že táto forma záznamu je odolnejšia voči chybám.

pre in

Slučka for sa používa na zoznam všetkých vlastností objektu. Ale aj pomocou tohto cyklu sú zobrazené absolútne všetky vlastnosti, vrátane tých, ktoré boli zdedené prototypom. Dopadne to zle vedľajším účinkom, keď dostaneme metódu ako vlastnosť. Ak je takáto slučka napísaná bez vedomia tejto situácie, potom táto časť kódu môže spôsobiť chybu.

Telo cyklu by malo byť zabalené do príkazu if, ktorý testuje vlastnosť objektu, aby sa vylúčili vlastnosti prototypu, napríklad:

For (meno v objekte) ( if (object.hasOwnProperty(name)) ( .... ) )

Vo väčšine prípadov sa tomuto operátorovi treba úplne vyhnúť. Najlepšie je spoľahnúť sa na metódy ako Object.keys a Array.prototype.forEach.

prepínač

Bežnou chybou v príkaze switch je zabudnutie umiestniť break za konštrukciu prípadu. JSLint očakáva, že každý prípad bude ukončený prerušením, návratom alebo hodom. Každá konštrukcia prípadu bude zoradená s príkazom switch.

var

JavaScript vám umožňuje definovať var kdekoľvek v rámci funkcie. JSLint je v tomto prípade na takéto definície prísnejší.

JSLint očakáva, že konštrukt var bude deklarovaný iba raz a pred jeho použitím.

JSLint odrádza od používania var v zátvorkách, pretože nemajú svoj vlastný rozsah.

s

Táto konštrukcia bola pôvodne určená na poskytovanie skráteného prístupu k vlastnostiam hlboko vnorených objektov. Použitie tohto konštruktu môže viesť k zámene medzi používaním premenných a vlastnosťami, čo môže viesť k nepredvídateľnému správaniu programu. Preto je lepšie tento operátor nikdy nepoužívať.

== a!=

Operátory AND != vykonajú pred porovnaním typové pretypovanie. Je to zlé, pretože rôzne prevedenia, napríklad "trn" == 0 bude pravdivé. Môže to maskovať chyby. JSLint nedokáže spoľahlivo určiť, či je použitie == aktuálne opodstatnené, preto je vždy lepšie použiť porovnania bez implicitného pretypovania, konkrétne === a !==.

Pomocou možnosti eqeq môžete zakázať kontrolu tohto operátora.

++ a --

JSLint je proti používaniu týchto operátorov. Ich používanie môžete povoliť pomocou možnosti plusplus.

Bitové operácie

JavaScript nemá typ Integer, ale má bitové operátory. Bitové operátory konvertujú operandy s pohyblivou rádovou čiarkou na celé čísla a naopak, takže nie sú také efektívne ako v C alebo iných jazykoch. Zriedkavo sú užitočné v aplikáciách prehliadača. Podobnosti s logické operátory môže maskovať niektoré chyby programovania. Bitová možnosť umožňuje použitie týchto operátorov.

Eval je zlý

Funkcia eval (a jej príbuzní setTimeout a setInterval) poskytujú prístup ku kompilátoru JavaScriptu. To je niekedy potrebné, ale väčšinou to naznačuje veľmi zlý štýl programovania. Funkcia eval je najviac zneužívanou funkciou JavaScriptu.

Konštruktéri a nové

Konštruktory sú funkcie, ktoré sú určené na použitie s novým operátorom. Táto predpona vytvorí nový objekt založený na prototype funkcie a priradí tento funkčný objekt k priradenej premennej. Ak zabudnete použiť operátor new pre funkciu konštruktora, vrátený výsledok nebude presne taký, ako sa očakávalo.

JSLint poskytuje konvenciu, že konštruktory funkcií musia mať mená, ktorých prvé písmeno bude veľké písmená, inak sa to bude považovať za chybu overenia, ak sa táto funkcia zavolá s operátorom new.

Použitie operátora new s objektmi ako Number, String, Boolean bude pri overovaní považované za chybu.

Pri kontrole takéhoto nového objektu Object bude JSLint predpokladať, že je nesprávny a je lepšie použiť skrátený zápis - ().

možnosti

JSLint ponúka niekoľko možností, ktoré kontrolujú, ako to funguje. Vo webovej aplikácii JSLint sa voľby vyberajú pomocou začiarkavacích políčok a dvoch polí.

Keď sa JSLint volá ako funkcia, vyžaduje parameter – objekt volieb, ktorý vám umožňuje špecifikovať prijateľnú podmnožinu JavaScriptu. Na webovej stránke to robí verzia JSLint http://www.JSLint.com automaticky.

Možnosti je možné nastaviť aj v skripte pomocou direktívy /*JSLint*/:

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

Popis Možnosť Význam
Tolerujte priraďovacie výrazy zadok true, ak by priradenie malo byť povolené mimo pozície príkazu.
Ignorovanie bitových operátorov bitovo true, ak by sa bitové operátory nemali testovať
Povoliť funkcie prehliadača prehliadač pravda, berú sa do úvahy štandardné globálne premenné prehliadača
Povoliť Google Closure Idioms uzavretie true, ak by mali byť povolené anotácie Google Close
Povoliť pokračovanie ďalej true, takže použitie countinue sa ignoruje
Návrh CouchDB gauč true, ak chcete, aby funkcie CouchDB boli považované za globálne
Povoliť debgger ladenie true, ak by mal byť povolený príkaz ladenia
Povoľte konzolu, upozornite rozvíjať true, ak nie je nastavená možnosť prehliadača a tieto operátory je potrebné povoliť
Povoliť == a != ekv true, ak by mali byť povolené operátory == a !=
Povoliť eval zlý true, ak má byť povolené eval
Medzery a odsadenie zarážka Počet medzier použitých na odsadenie (predvolené 4)
Maximálny počet chýb maxerr Maximálny počet upozornení pre správu o skenovaní (predvolené 50)
Maximálna dĺžka riadku maxlen Maximálny počet znakov na riadok
Používanie veľkých písmen na začiatku slova v názve konštruktora newcap true, ak sú potrebné prvé písmená názvov funkcií konštruktorov
Zvážte Node.js uzol true, ak má Node.js brať do úvahy globálne premenné
Povoliť pomlčku _ v identifikátoroch Žiadni muži true, ak by takéto premenné nemali byť povolené
Zastavenie pri prvej chybe passfail true, ak by sa skenovanie malo zastaviť pri prvej chybe
Povoliť ++ a -- plusplus true, ak by malo byť povolené použitie ++ alebo --
Povoliť chýbajúce „použiť prísne“ na začiatku funkcie nedbalý true, takže vloženie riadku „use strict“ je voliteľné
Povoliť komentáre TODO robiť pravda, aby som nereagoval na komentáre TODO
Povoliť nepoužívané parametre unparam true, nezobrazovať upozornenia na nepoužívané parametre
Povoliť viacero premenných vo funkcii vars pravda, pre viacnásobné použitie var vo funkcii
Povoliť špinavé medzery biely pravda ignorovať špinavé miesta