Kako uporabljati predlogo za ES6 v JavaScriptu
Pri programiranju je izraz “dobesedno” se nanaša na. \ t zapis vrednosti v kodi. Vrednost niza na primer ne zapišemo z a string literal ki so znaki, zaprti v dvojnih ali enojnih narekovajih ("foo"
, 'bar'
, "To je niz!"
).
Literal za predloge so bile uvedene leta 2006. \ t ECMAScript 6. Delujejo podobno kot literalni nizi; proizvajajo predloge in vrednosti surovih predlog, oba sta niza.
Za razliko od literalnih nizov pa lahko predlogi dobijo vrednosti, ki so večplastne strune, nekaj, kar lahko dosežete v literalnem nizu samo z dodajanje novih znakov vrstic (n
).
Temeljni literali lahko tudi ustvarite nize z drugimi vrednostmi (izpeljano iz izrazov), za katere bi morali uporabiti plus operater v literalnem nizu ("vaš ID je:" + idNo
; kje idNo
je spremenljiv izraz s številsko vrednostjo).
Vse te lastnosti naredijo predlogo literatur bolj zaželeno ustvarite vrednosti nizov.
Sintaksa literalnih izrazov
Razmejitelj literalnega predloga je backtick "
znak (znana tudi kot znak za ozadje ali simbol za grob naglas). Izraz znotraj literala (vrednost je med izvajanjem in vključena v končno vrednost, ki jo ustvari literal) kodrasti oklepaji z pred znakom dolarja
$
.
'niz $ someExpression več nizov'
Tukaj je nekaj primeri literarnih predlog proizvodnjo nespremenjena, substituiran (izrazi nadomeščeni z vrednotenimi vrednostmi) in večplastna strune.
console.log ('hello'); // hello var name = "Joan"; console.log ('hello $ name'); // hello Joan console.log ('Dragi Joan, Dobrodošli'); // Dragi Joan, // Dobrodošli.
Vrednosti za izhod iz predloge in surove predloge
V predlogi literal, "
(povratno), \
(poševnica nazaj) in $
znaki za dolar pobegniti uporabljati pobeg \
če jih je treba vključiti v vrednost njihove predloge.
Po privzetku so vsa izhodna zaporedja v literaturi predloga zanemarjeno. Če jo želite vključiti v izhod, morate uporabiti njegovo vrednost surove predloge.
console.log ('inline code v označevalni kodi:' code '); // inline kodo v označevalniku:' code 'var name = "Joan"; console.log (' hello $ name. '); / / hello $ name. console.log (String.raw'hello $ name. '); // hello \ t.
The String.raw
metodo izpisuje vrednosti surove predloge (neobdelana nizska oblika predloga). V zgornji kodi je klic funkcije surov
metoda je navedena kot “označena predloga”.
Označene predloge
Označena predloga je a klic funkcije kje, namesto običajnih oklepajev (z neobveznimi parametri) poleg imena funkcije, tam je literarna predloga iz katere funkcija dobi argumente.
Torej, namesto da kličete funkcijo, kot je ta:
foo (ArgumentsForFoo);
Imenuje se takole:
foo'ATemplateStringProvidingArgumentsForFoo ';
Funkcija foo
se imenuje a funkcije. Njegov prvi argument, prejet od literalnega predloga, je matrika se imenuje predmet predloge.
Predmet predloge (matrika) ima vse vrednosti nizov razlaga iz literarnega predloga in ima a surov
lastnost (drugo polje), ki ima vse surove (un-escaped) vrednosti niza razlagati iz istega dobesednega.
Po predmetu predloge so argumenti funkcije oznake vključeni vse ocenjeni zunanje vrednosti prisotni v tem dobesednem (tisti, ki so zajeti v zavitih oklepajih $
).
V spodnji kodi je foo
ustvarjena je funkcija svoje argumente. Funkcija se potem pokliče v obliki označene predloge, s predlogo, ki vsebuje dva izraza (ime
in id
).
var ime = "John"; var id = 478; foo'hello $ name. vaš ID je: $ id. '; funkcija foo () console.log (argumenti [0]); // Array ["hello", ". Vaš ID je:", "." ] console.log (argumenti [1]); // John console.log (argumenti [2]); // 478
Prvi predloženi argument je predmet predloge z vsemi nizi, interpretiranimi iz literarnega predloga, drugi in tretji argumenti vrednosti izrazov, ime
in id
.
The surov
nepremičnine
Kot smo že omenili, ima objekt predloge a imetje imenovano surov
ki je polje, ki vsebuje vse surove (un-escaped) vrednosti niza razlaga iz literarnega predloga. Tako lahko dostopite do surov
lastnina:
var name1 = "John", ime2 = "Joan"; foo'hello $ name1, $ name2, kako ste oba? '; funkcija foo () console.log (argumenti [0]); // Array ["hello $ name1,", ", kako ste oba?"] Console.log (argumenti [0] .raw); // Array ["hello $ name1,", ", kako sta oba?"] Console.log (argumenti [1]); // Joan
Uporabite primere označenih predlog
Označene predloge so uporabne, kadar jih potrebujete prekinil niz v ločene dele, kot je pogosto v URL-ju, ali med razčlenjevanjem jezika. Boste našli zbirko tukaj so označeni primeri predlog.
Razen IE, so predlogi literali podpira v vseh večjih brskalnikih.
Spodaj lahko najdete nekaj primerov funkcij oznak z različnih podpisov ki predstavljajo argumente:
var ime = "John"; foo'hello $ name, kako ste oba? '; bar'hello $ name, kako ste oba? '; funkcija foo (… args) console.log (args); // Array [Array ["hello", ", kako sta oba?"], "John"] funkcijska vrstica (strVals,… exprVals) console.log (strVals); // Array ["hello", "kako ste oba?" ] console.log (exprVals); // Array ["John"]
V bar
funkcija, prvi parameter (strVals
) ali je predmet predloge in drugi (ki uporablja sintakso širjenja) je zbirka, ki se je zbrala vse ocenjene vrednosti izraza iz literalnega predloga, ki je bil posredovan funkciji.
Postavite niz skupaj
Če želiš dobi celoten stavek (izpeljano iz dobesednega) znotraj funkcije oznake, združi vse vrednosti nizov, ki nosijo vzorčne nize in vrednotene vrednosti izraza. Všečkaj to:
funkcija foo (strs,… exprs) // če obstajajo izrazi, vključeni v literal, če (exprs.length! == 0) var n = strs.length - 1, result = "; for (var i = 0 ; jaz < 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
matrika ima vse strune najdemo v dobesednem in exprs
drži vse ocenjene vrednosti izraza iz dobesednega.
Če obstaja celo vrednost enega izraza, povežite vsako vrednost matrike strs
(razen zadnje) z vrednostjo istega indeksa exprs
. Nato na koncu dodajte zadnjo vrednost strs
niz v niz, oblikovanje popolnega stavka Na ta način.