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 JavaScripteNá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ýmPriradenie 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 JavaScripteKonš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 funkcieFunkcie 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 hodnotyVo 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ýrazyV 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 šípokDoteraz 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
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štantyKonš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ántPre 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é typyKeď 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 JavaScriptProgramy 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úbkyOdsadenie 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 čiaryVyhnite 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áreJe 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ýchVš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 funkciiVš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átoryKaž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átoryZlož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.
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ýkazHodnota 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ásenieKonš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 vyjadreniePrí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ásenieKonštrukt while by mal vyzerať takto:
Kým (stav) ( vyhlásenia )
robiť operátoraVyhlá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áseniePrí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átorVyhnite sa používaniu príkazu pokračovať. Toto vyhlásenie má tendenciu skryť tok vykonávania funkcie.
Vyhlásenie sOperátor With by sa nemal používať.
PriestoryPrá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ódJazyk 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čiarkaJavaScript 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.
ČiarkaOperá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ľnostiV 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é blokyJSLint 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 inSluč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.
varJavaScript 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.
sTá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ácieJavaScript 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žnostiJSLint 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 |