Koduleht » Kodeerimine » Kuidas kasutada ES6 Template Literals JavaScriptis

    Kuidas kasutada ES6 Template Literals JavaScriptis

    Programmeerimisel mõiste “sõna otseses mõttes” viitab väärtuste märkimine koodis. Näiteks märgistame stringiga a string sõna otseses mõttes mis on tähemärgid kahekordse või ühekordse jutumärgiga"foo", "baar", "See on string!").

    Template literals võeti kasutusele ECMAScript 6. Nad töötavad üsna sarnaselt stringikeelsetele; nad toodavad malli väärtused ja toores malli väärtused, mõlemad on stringid.

    Erinevalt stringiteadlastest võivad malliteadlased luua väärtusi mitmekihilised stringid, midagi, mida saate stringilises sõnastikus saavutada ainult uute rea märkide lisamine (n) sellele.

    Samuti võivad olla ka mallid luua teiste väärtustega stringid (mis on tuletatud väljenditest), mille jaoks peaksite kasutama pluss operaator stringi sõnas ("Teie ID on:" + idNo; kus idNo on numbriline väärtus muutuva väljendiga).

    Kõik need funktsioonid muudavad malli kirjakeeled eelistatavamaks luua stringide väärtusi.

    Malli kirjandite süntaks

    Malli grammatiline piiraja on backtick ' iseloomu (Tuntud ka kui backquote'i tähemärki või rasket rõhu sümbolit). Väljend sõna sees (mille väärtus on hindamise ajal ja mis sisaldub sõna otseses väärtuses) on lisatud lokkis traksid koos eelmise dollari märk $.

     'string $ someExpression veel string 

    Siin on mõned näiteid matriitsikeelest tootmine muutmata, asendatud (väljendused asendatud nende hinnatud väärtustega) ja mitmekihiline stringid.

     console.log ('tere'); // hello var name = "Joan"; console.log ('hello $ name'); // hello Joan console.log („Kallis Joan, Tere!”); // Lugupeetud Joan, // Tere tulemast. 

    Põgenevad & toores malli väärtused

    Malli sõnas ' (backtick), \ T (tagakülg) ja $ (dollari märk) tähemärki tuleks põgeneda kasutades põgenemise iseloom \ T kui need sisalduvad nende malli väärtuses.

    Vaikimisi on kõik mallilises sõnastikus olevad põgenemisjärjestused ignoreeritakse. Kui soovite selle väljundisse lisada, peate seda kasutama toores malli väärtus.

     console.log ("inline kood märgistus: kood"); // inline kood märgistuses: 'code' var name = "Joan"; console.log ('hello $ name.); / / hello $ name. console.log (String.raw'hello $ name. '); // hello. 

    The String.raw meetod väljundid toores malli väärtused (matriitsitähis). Ülaltoodud koodis on toores meetodit nimetatakse “märgistatud malli”.

    Märgistatud mallid

    Märgistatud mall on a funktsioonikõne kus, tavaliste sulgude asemel (valikuliste parameetritega) peale funktsiooni nime, seal on matemaatiline mall millest funktsioon saab oma argumendid.

    Nii et selle asemel, et kutsuda sellist funktsiooni:

     foo (ArgumentsForFoo); 

    Seda nimetatakse selliseks:

     foo'ATemplateStringProvidingArgumentsForFoo '; 

    Funktsioon foo nimetatakse a sildi funktsioon. Tema esimene argument, mis on saadud malle kirjalikust sõnast, on massiivi nimega malli objekt.

    Malliobjekt (massiiv) hoiab kõik stringi väärtused tõlgendatakse matemaatilisest ja on a toores omandiõigus (teine ​​massiiv) kõik toores (un-escaped) string väärtused tõlgendada samast sõnast.

    Malliobjekti järgi sisaldavad märgendifunktsiooni argumendid kõik hinnata välised väärtused esinevad selles sõna otseses mõttes (need, mis on suletud lokkis $ ).

    Allolevas koodis on foo funktsioon on loodud esitama oma argumendid. Seejärel nimetatakse funktsiooni märgistatud malli moel, koos matemaatilise sõnaga, millel on kaks väljendit (nimi ja id).

     var name = "John"; var id = 478; foo'hello $ name. teie ID on: $ id. '; function foo () console.log (argumendid [0]); // Array ["tere", ". Sinu id on:", "." ] console.log (argumendid [1]); // John console.log (argumendid [2]); // 478 

    Esimene argument on välja antud malli objekt teisel ja kolmandal argumendil on kõik malliteaduslikust tõlgitud stringid väärtused väljendeid, nimi ja id.

    The toores vara

    Nagu eespool mainitud, on mallobjektil a kutsutud vara toores mis on massiiv, mis sisaldab kõik toores (un-escaped) string väärtused tõlgendada mallist sõna otseses mõttes. Nii pääsete juurde toores vara:

     var name1 = "John", nimi2 = "Joan"; foo'hello $ name1, $ name2, kuidas sa mõlemad oled? '; function foo () console.log (argumendid [0]); // Array ["hello $ name1,", ", kuidas sa oled mõlemad?"] Console.log (argumendid [0] .raw); // Array ["hello $ name1,", ", kuidas sa oled mõlemad?"] Console.log (argumendid [1]); // Joan 
    Kasutage märgistatud mallide juhtumeid

    Märgistatud mallid on kasulikud murda string erinevates osades, näiteks URL-is, või keele parsimise ajal. Leiad kogu siin märgistatud malli näited.

    Muud kui IE, on mallitähed kõikides suuremates brauserites.

    Allpool on mõned märgendifunktsioonide näited erinevad allkirjad mis esindavad argumente:

     var name = "John"; foo'hello $ name, kuidas sa mõlemad oled? '; bar'hello $ name, kuidas sa mõlemad oled? '; funktsioon foo (… args) console.log (args); // Array [Array ["hello", ", kuidas sa nii?"], "John"] funktsiooniriba (strVals,… exprVals) console.log (strVals); // Array ["tere", ", kuidas sa mõlemad oled?" ] console.log (exprVals); // Array ["John"] 

    In baar funktsioon, esimene parameeter (strVals) on malli objekt ja teine ​​(mis kasutab levinud süntaksit) on kogutud massiiv kõik hinnatud ekspressiooniväärtused funktsioonile edastatud malli sõnast.

    Pange string koos

    Kui sa tahad saada kogu lause (tuletatud sõnastikust) sildifunktsiooni sees, koondama kõik väärtused matriitside ja hinnanguliste ekspressiooniväärtuste hulgast. Nagu nii:

     funktsiooni foo (strs,… exprs) // kui sõnastikus on mõningaid väljendeid, kui (exprs.length! == 0) var n = strs.length - 1, tulemus = "; jaoks (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.'; 

    The strs massiiv hoiab kõik stringid leidub sõna otseses mõttes ja exprs hoiab kõik hinnatud ekspressiooniväärtused sõna otseses mõttes.

    Kui eksisteerib isegi üks väljendusväärtus, ühendage iga massiivi väärtus strs (välja arvatud viimane) sama indeksiga exprs. Seejärel lisage lõpus viimane väärtus strs massiivi sidestatud stringile, moodustades täieliku lause nii.