Úvodná » kódovanie » Ako používať literály šablón ES6 v jazyku JavaScript

    Ako používať literály šablón ES6 v jazyku JavaScript

    V programovaní termín “doslovný” odkazuje na zaznamenávanie hodnôt v kóde. Napríklad, označíme reťazec hodnotu s string literal , ktoré sú znaky uzavreté v dvojitých alebo jednoduchých úvodzovkách ("Foo", 'Bar', "Toto je reťazec!").

    Šablóny literálov boli zavedené ECMAScript 6. Pracujú úplne podobne ako reťazcové literály; vyrábajú hodnoty šablóny a hodnoty nespracovaných šablón, oba sú struny.

    Avšak, na rozdiel od literálov reťazcov, šablóny literály môžu produkovať hodnoty, ktoré sú viacnásobné reťazce, niečo, čo môžete dosiahnuť v reťazci doslova len pridanie nových riadkov (\ n).

    Lístky šablón môžu tiež vytvárať reťazce s inými hodnotami (odvodené z výrazov), pre ktoré by ste museli použiť plus operátor v reťazci doslovný ("vaše id je:" + idNo; kde id je variabilný výraz s číselnou hodnotou).

    Všetky tieto funkcie robia z literatúry šablóny výhodnejšie vytvoriť hodnoty reťazca.

    Syntax literálov šablón

    Oddeľovač šablóny je literál backtick ' znak (tiež známy ako znak spätnej väzby alebo symbol hrubého prízvuku). Výraz vnútri literálu (hodnota ktorej je hodnotené počas behu a zahrnuté do konečnej hodnoty vytvorenej literálom) kučeravé závesy s pred znakom dolára $.

     'reťazec $ someExpression ďalší reťazec' 

    Tu sú nejaké príklady šablón literálov produkujúce nezmenený, substituovaný (výrazy nahradené ich hodnotenými hodnotami) a multi-lemované reťazce.

     console.log ( 'Dobrý deň'); // hello var meno = "Joan"; console.log ('ahoj $ name'); // hello Joan console.log ("Milá Joan, Vitajte."); // Milá Joan, // Vitajte. 

    Hodnoty escaping & raw template

    V šablóne doslovne ' (Backtick), \ (spätné lomítko) a $ (znak dolára) by mali uniknúť pomocou únikový znak \ ak majú byť zahrnuté do hodnoty šablóny.

    V predvolenom nastavení sú všetky sekvencie úniku v šablóne doslovne ignorované. Ak ho chcete zahrnúť do výstupu, musíte použiť jeho surovú hodnotu šablóny.

     console.log ('inline kód pri označovaní: \' kód \ "); // vložený kód v značke: 'code' var name =" Joan "; / hello $ name .konsole.log (String.raw'hello \ $ name.); // hello \ $ name. 

    String.raw metóda výstupy surových hodnôt šablóny (surový reťazec formulára šablóny doslovne). Vo vyššie uvedenom kóde je volanie funkcie funkcie surový metóda sa označuje ako “označené šablóny”.

    Tagované šablóny

    Šablóna označená tagom je a volanie funkcie kde, namiesto obvyklých zátvoriek (s voliteľnými parametrami) okrem názvu funkcie, existuje šablóna doslova z ktorých funkcia dostáva svoje argumenty.

    Takže namiesto volania funkcie ako je táto:

     foo (ArgumentsForFoo); 

    Nazýva sa to takto:

     foo'ATemplateStringProvidingArgumentsForFoo '; 

    Funkcia foo sa nazýva a tag funkcie. Jeho prvý argument získaný zo šablóny doslova je rad tzv objekt šablóny.

    Objekt šablóny (pole) je uložený všetky hodnoty reťazca interpretovaný zo šablóny doslovne a má surový vlastnosť (ďalšie pole) všetky nespracované (nevybočené) hodnoty reťazca interpretované z toho istého literálu.

    Po objekte šablóny obsahujú argumenty funkcie tagu všetko hodnotené vonkajšie hodnoty prítomné v tom doslovnom (tie, ktoré sú uzavreté v kučeravých zátvorkách $ ).

    V nižšie uvedenom kóde foo je vytvorená funkcia svoje argumenty. Funkcia sa potom volá v označenej šablóne spôsobom, s doslovnou šablónou nesúcou dva výrazy (názov a id).

     var meno = "John"; var id = 478; foo'hello $ meno. vaše id je: $ id. '; funkcia foo () console.log (argumenty [0]); / / Array ["hello", "vaše ID je:", "." ] console.log (argumenty [1]); // John console.log (argumenty [2]); // 478 

    Prvým vydaným argumentom je objekt šablóny ktoré nesú všetky reťazce interpretované zo šablóny doslovne, druhý a tretí argument sú hodnotené hodnoty výrazov, názov a id.

    surový vlastnosť

    Ako sme už spomenuli, objekt šablóny má a majetok nazvaný surový čo je pole obsahujúce všetky nespracované (nevybočené) hodnoty reťazca interpretovaný zo šablóny doslovne. Takto môžete pristupovať surový vlastnosť:

     var názov1 = "John", name2 = "Joan"; foo'hello \ $ name1, $ name2, ako ste obaja? '; funkcia foo () console.log (argumenty [0]); // Array ["hello $ name1", ", ako ste obaja?"] Console.log (argumenty [0] .raw); // Array ["hello \ $ name1", "ako ste obaja?"] Console.log (argumenty [1]); // Joan 
    Používajte prípady označených šablón

    Šablóny s označením sú užitočné, keď potrebujete zlomiť reťazec do samostatných častí, ako je to často v prípade adresy URL alebo pri analýze jazyka. Nájdete tu kolekciu označené príklady šablón tu.

    Iné ako IE, literály šablóny sú podporované vo všetkých hlavných prehliadačoch.

    Nižšie nájdete niekoľko príkladov funkcií značiek rôzne podpisy ktoré predstavujú argumenty:

     var meno = "John"; foo'hello $ name, ako ste obaja? '; bar'hello $ name, ako ste obaja? '; funkcia foo (... args) console.log (args); // Array [Array ["hello", "ako ste obaja?", "John"] funkčný panel (strVals, ... exprVals) console.log (strVals); // Array ["hello", "ako ste obaja?" ] console.log (exprVals); // Array ["John"] 

    V bar prvý parameter (strVals) je objekt šablóny a druhý (ktorý používa rozšírenú syntax) je pole, ktoré sa zhromaždilo všetky hodnotené hodnoty expresie z literárnej šablóny prenesenej na funkciu.

    Dajte reťazec dohromady

    Ak chceš získať celú vetu (odvodený od literálu) vo vnútri funkcie tagu, spájajú všetky hodnoty matiek nesúcich šablóny reťazcov a vyhodnotené hodnoty výrazov. Ako toto:

     funkcia foo (strs, ... exprs) // ak sú akékoľvek výrazy zahrnuté v doslovnom if (exprs.length! == 0) var n = strs.length - 1, výsledok = "; pre (var i = 0 i < n; i++)  result += strs[i] + exprs[i];  result += strs[n]; console.log(result); //"Hello John."  // if there are no expressions included in the literal else console.log(strs[0]);  name = 'John'; foo'Hello $name.'; 

    STR pole platí všetky reťazce nájdené v doslovnom a exprs drží všetky hodnotené hodnoty expresie od doslovného.

    Ak existuje aj jedna hodnota výrazu, spojte každú hodnotu poľa STR (okrem posledného) s rovnakou hodnotou indexu exprs. Potom na konci pridajte poslednú hodnotu STR pole do zreťazeného reťazca, tvoriť úplnú vetu tadiaľto.