Kotisivu » Coding » ES6-mallin kirjaimien käyttö JavaScriptissä

    ES6-mallin kirjaimien käyttö JavaScriptissä

    Ohjelmoinnissa termi “kirjaimellinen” viittaa arvojen merkintä koodissa. Esimerkiksi merkitsemme merkkijonon arvon a merkkijono jotka ovat kaksois- tai yksittäisiä lainausmerkkejä ("Foo", 'baari', "Tämä on merkkijono!").

    Mallien kirjaimet otettiin käyttöön vuonna 2003 ECMAScript 6. Ne toimivat melko samankaltaisesti kuin merkkijono; he tuottavat mallin arvot ja raakamallin arvot, molemmat ovat merkkijonoja.

    Toisin kuin merkkijonot, mallipohjat voivat tuottaa arvoja moniriviset merkkijonot, jotain, jonka voit saavuttaa merkkijonolla vain uusien rivimerkkien lisääminen (\ n).

    Mallimerkinnät voivat myös luo merkkijonoja muilla arvoilla (johdettu lausekkeista), joille sinun pitäisi käyttää plus operaattori merkkijonossa ("tunnuksesi on:" + idNo; missä TD NO on muuttujalauseke, jolla on numeerinen arvo).

    Kaikki nämä ominaisuudet tekevät mallipohjaisista kirjaimista edullisempia luo merkkijonoja.

    Mallien kirjaimien syntaksi

    Mallien kirjaimellinen rajaus on backtick ' merkki (tunnetaan myös nimellä backquote-merkki tai vakava aksentti-symboli). Ilmaisu sisällä kirjaimellinen (arvo on arvioitu suorituksen aikana ja sisällytetään kirjaimellisesti tuotettuun lopulliseen arvoon) aaltosulkeet kanssa edellinen dollarin merkki $.

     'merkkijono $ someExpression lisää merkkijonoa 

    Tässä muutamia esimerkkejä mallien kirjaimista tuottavat ennallaan, substituoitu (ilmaisut korvataan niiden arvioiduilla arvoilla), ja multi-vuorattu jouset.

     console.log ( 'Hello'); // hello var name = "Joan"; console.log ('hello $ name'); // hello Joan console.log ('Hyvä Joan, Tervetuloa.'); // Hyvä Joan, // Tervetuloa. 

    Poistuvat & raakapohjaiset arvot

    Mallissa on kirjaimellinen ' (Backtick), \ (backslash) ja $ (dollarin merkki) merkkejä olisi pakotettava käyttämällä paeta \ jos ne sisällytetään niiden malliarvoon.

    Oletusarvon mukaan kaikki templaattikielisen evakuointisekvenssit ovat huomiotta. Jos haluat sisällyttää sen tulosteeseen, sinun on käytettävä sitä raakamallin arvo.

     console.log ('inline code in markup: koodi'); // inline-koodi merkinnässä: 'code' var name = "Joan"; console.log ('hello $ name.) / hello $ name. console.log (String.raw'hello $ name.)) // hei \ t. 

    String.raw menetelmä tuottaa raakamallin arvoja (templaatin kirjaimellinen merkkijono). Yllä olevassa koodissa raaka menetelmää kutsutaan nimellä “merkitty malli”.

    Merkityt mallit

    Tunnistettu malli on a toiminto missä, tavallisten sulkujen sijasta (lisävarusteilla) toiminnon nimen lisäksi, siellä on kirjaimellinen malli josta toiminto saa argumenttinsa.

    Joten sen sijaan, että kutsut tällaista toimintoa:

     foo (ArgumentsForFoo); 

    Sitä kutsutaan näin:

     foo'ATemplateStringProvidingArgumentsForFoo "; 

    Toiminto foo kutsutaan a tag-toiminto. Sen ensimmäinen argumentti, joka on vastaanotettu mallipohjasta, on ryhmä soitti mallin objekti.

    Mallipohja (matriisi) pitää sisällään kaikki merkkijonon arvot tulkitaan mallista kirjaimellisesti ja siinä on a raaka omaisuutta (toinen taulukko), joka pitää sisällään kaikki raaka-arvot (un-escaped) tulkitaan samasta kirjaimesta.

    Mallin objektin jälkeen tag-toiminnon argumentit sisältävät kaikki arvioitu ulkoiset arvot läsnä siinä kirjaimellisessa muodossa (ne, jotka on suljettu suljinpannuissa $ ).

    Alla olevassa koodissa foo toiminto on luotu esittää väitteensä. Toiminto kutsutaan sitten merkityt mallit, mallin kirjaimella, jossa on kaksi ilmaisua (nimi ja id).

     var name = "John"; var id = 478; foo'hello $ name. tunnuksesi on: $ id. '; toiminto foo () console.log (argumentit [0]); // Array ["hello", ". Id on:", "." ] console.log (argumentit [1]); // John console.log (argumentit [2]); // 478 

    Ensimmäinen argumentti, joka on annettu, on mallin objekti joka sisältää kaikki merkkijohtoisesta tulkinnasta tulevat merkkijonot, toinen ja kolmas argumentti ovat arvot ilmaisuja, nimi ja id.

    raaka omaisuus

    Kuten edellä mainittiin, mallikohteessa on a kiinteistö kutsutaan raaka joka on taulukko, joka sisältää kaikki raaka-arvot (un-escaped) tulkitaan mallista kirjaimellisesti. Näin pääset käyttämään raaka omaisuus:

     var name1 = "John", nimi2 = "Joan"; foo'hello $ name1, $ name2, miten olet molemmat? '; toiminto foo () console.log (argumentit [0]); // Array ["hello $ name1,", ", miten olet molemmat?"] Console.log (argumentit [0] .raw); // Array ["hello $ name1,", ", miten olet molemmat?"] Console.log (argumentit [1]); // Joan 
    Käytä merkityt mallit

    Merkityt mallit ovat hyödyllisiä, kun tarvitset rikkoa merkkijono osaksi erillisiä osia, kuten usein URL-osoitteessa, tai kielen jäsentämisen yhteydessä. Löydät kokoelman merkityt mallin esimerkit täällä.

    Muut kuin IE: n mallit ovat tukee kaikkia tärkeimpiä selaimia.

    Alla on esimerkkejä tunnisteiden toiminnoista eri allekirjoituksia jotka edustavat argumentteja:

     var name = "John"; foo'hello $ name, miten olet molemmat? '; bar'hello $ name, miten olet molemmat? '; toiminto foo (… args) console.log (args); // Array [Array ["hello", ", miten olet molemmat?"], "John"] toimintopalkki (strVals,… exprVals) console.log (strVals); // Array ["hello", "miten olet molemmat?" ] console.log (exprVals); // Array ["John"] 

    Vuonna baari toiminto, ensimmäinen parametri (strVals) on mallin objekti ja toinen (joka käyttää levitettyä syntaksia) on kokoelma kaikki arvioidut ilmentymisarvot toiminnon siirtämästä mallipohjasta.

    Laita merkkijono yhteen

    Jos haluat saada koko lause (johdettu kirjaimellisesta) tag-toiminnon sisällä, yhdistää kaikki arvot matriiseista, jotka sisältävät templaattisia merkkijonoja, ja arvioidut ilmentymisarvot. Kuten tämä:

     toiminto foo (strs,… exprs) // jos kirjaimessa on lausekkeita, jos (exprs.length! == 0) var n = strs.length - 1, tulos = "; for (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.'; 

    STRs matriisi pitää kaikki merkkijonot löytyy kirjaimellisesti ja exprs pitää kaikki arvioidut ilmentymisarvot kirjaimellisesti.

    Jos jopa yksi lausekkeen arvo on olemassa, yhdistä jokainen taulukon arvo STRs (paitsi viimeinen), jolla on sama indeksiarvo exprs. Lisätään sitten lopussa viimeinen arvo STRs matriisi yhdistyneeseen merkkijonoon, muodostavat täydellisen lauseen tällä tavalla.