JavaScript Jargon 10 voorwaarden die u moet weten
Van Curry naar sluitingen er zijn nogal wat JavaScript-jargons (speciale woorden die in het veld worden gebruikt), waardoor je niet alleen je woordenschat kunt verbeteren, maar JavaScript ook beter begrijpt. Jargons zijn normaal te vinden in documentatie en technische artikelen. Maar sommigen van hen houden van sluitingen zijn vrij standaard dingen om over te weten. Weten wat het woord zelf betekent, kan je helpen het concept te kennen waarnaar het is genoemd voor beter.
Dit bericht is de compilatie van 10 dergelijke termen met hun betekenis en de context waarin ze worden gebruikt in JavaScript. Als je een beginner bent, dan heeft deze lijst je bedekt met de basis zoals hijsen. Tegelijkertijd zijn er minder bekende of minder begrepen termen in opgenomen.
- ariteit
- Anoniem
- Sluiting
- Currying
- Hijsen
- Mutatie
- Pragma
- schildwacht
- Vanille
- variadic
1. Arity
ariteit (uit het Latijn) is de term die wordt gebruikt om te verwijzen naar het aantal argumenten of operanden in respectievelijk een functie of bewerking. Waarschijnlijk kom je dit woord tegen in het rijk van JavaScript wanneer het wordt gebruikt om het te vermelden aantal argumenten verwacht door een JavaScript-functie.
Er is zelfs een eigenschap met de naam arity, van de Functie
object dat het aantal verwachte argumenten in een functie retourneert. Het is nu echter verouderd en vervangen door lengte
.
De volgende functie heeft een arity van 3.
functie getName (first, middle, last) return first + "+ middle +" + last;
2. Anoniem
Anoniem is een bijvoeglijk naamwoord. Wanneer naar iets of iemand wordt verwezen als anoniem, betekent dit dat de naam van het ding of de persoon niet is geïdentificeerd. Eveneens in JavaScript is een anonieme functie die niet wordt geïdentificeerd door een naam.
(function () // body) ();
Hierboven ziet u een IIFE (Direct Opgevaagde Functie-Uitdrukking). De functie daarin is anoniem omdat deze geen naam heeft. Kijk nu eens naar die hieronder.
var foo = function () ;
Dat is ook een anonieme functie omdat er geen naam achter het trefwoord staat functie
.
Een beetje twijfel rijst in de juistheid van het gebruik van het woord “anoniem”. Met IIFE wordt de functie meteen aangeroepen, er is geen naam bij betrokken, terwijl de laatste functie de syntaxis noemt foo ()
is gebruikt.
Het is alsof we een naamloze functie doopten met de naam 'foo' en het daarmee gebruikten. Geldt dat als anoniem? Ik weet het niet, ik laat dat over aan de Engelse experts. Maar mijn verwarring terzijde, beide worden inderdaad anonieme functies genoemd.
3. Sluiting
Hier is een van de definities van oxford dictionary voor sluiting: “Een ding dat iets sluit of verzegelt, zoals een pet of das.”
In JavaScript is sluiten een innerlijke functie, die toegankelijk is buiten het bereik van de buitenfunctie, waarbij de verbinding met de variabelen van de buitenfunctie nog intact is.
Om dingen te verklaren (misschien niet nauwkeurig, maar eenvoudig genoeg), overweeg sluiting als een ober in een restaurant. Er gebeuren veel dingen in een restaurantkeuken, waar we niet mogen binnenkomen of kijken. Maar hoe moeten we dan ons voedsel krijgen?
Daar komen obers binnen. We bellen ze, bestellen het eten en gaan dan naar de keuken, informeren de koks over de bestellingen en brengen het naar ons wanneer de bestelling klaar is. Op deze manier hebben we geen enkele gebroken “reglement” en het kan nog steeds lukken om een maaltijd te pakken.
De ober is iemand die onze bestelling naar de keuken kan nemen en terug kan keren met het eten. JavaScript sluitingen lijken op dat, ze zijn in staat om onze parameters nemen en breng ons variabelen terug (referenties naar die variabelen, om precies te zijn) vanuit een functie waar we niet in mogen.
functieorder () var food; functie ober (bestelling) chef (bestelling); voer terug; functie chef (volgorde) if (order === 'pasta') food = ['pasta', 'jus', 'kruiden']; koken(); functie cook () food.push ('cooked'); ga ober terug; var myOrder = order (); console.log (MyOrder ( 'pasta')); // Array ["pasta", "jus", "kruiden", "gekookt"]
Zoals je kunt zien aan de hand van de bovenstaande code, alles behalve ober
en de retourwaarde van binnen de orderfunctie is niet zichtbaar voor de buitenwereld.
4. Currying
Het effect, genoemd naar Haskell Curry, verwijst naar meerdere functies gebruiken met enkele argumenten, in plaats van een enkele functie met meerdere argumenten. Laten we het zien toevoegen
functies hieronder bijvoorbeeld.
functie addx (x) functie addy (y) return x + y; return addy functie add (x, y) return (x + y); console.log (addx (3) (4)); \\ 7 console.log (voeg toe (3,4)); \\ 7
Beide functies retourneren hetzelfde resultaat. De functie ADDX
accepteert een parameter X
tijdens het terugkeren addy
die op zijn beurt de Y
waarde, voert de toevoeging uit met X
en geeft de som terug.
De functie toevoegen
neemt gewoon beide X
en Y
tegelijkertijd voert u de optelling uit en geeft u de som terug. Tot dusver lijkt de eerste functie niet erg nuttig, totdat ...
var add4 = addx (4); console.log (add4 (8)); // 12 console.log (add4 (6)); // 10 console.log (add4 (-74)); // - 70
Nu wordt de vorige functie opeens interessant. Bij currying kunt u altijd een stap in een reeks bewerkingen uitvoeren, zoals de toevoeging van 4 uit de bovenstaande code, wat handig is wanneer een van de variabelen die in de bewerking worden gebruikt altijd dezelfde is.
5. Hijsen
Takelen betekent iets opvoeden. Hijsen in JavaScript betekent ook hetzelfde en wat er wordt opgehaald, is de aangifte (variabele & functie-aangiften).
Verklaringen zijn waar variabelen en functies worden gemaakt met trefwoorden var
(niet voor global) en functie
.
Het maakt niet uit waar u de code typt om een functie of variabele te declareren, tijdens de evaluatie worden alle aangiften verplaatst binnen het bereik waar ze zich bevinden (behalve in de strikte modus). Daarom is het mogelijk om een werkcode te schrijven met de code voor functieaanroep die vóór de functieverklaring is geplaatst.
var name = 'Velma'; console.log (sayCatchPhrase (name)); // "Jinkies!" functie sayCatchPhrase (naam) phrases = 'Fred Flintstone': 'Yabba dabba doo!', 'Velma': 'Jinkies!', 'Razor': 'Bingo!', 'He-Man': 'I Have the Power '; zinsdelen retourneren [naam];
6. Mutatie
Mutatie betekent verandering of wijziging. Als u ooit het woord mutatie tegenkomt in JavaScript, verwijst dit waarschijnlijk naar de wijzigingen die DOM-elementen hebben doorgemaakt.
Er is zelfs een API genaamd MutationObserver om te letten op de DOM-mutaties zoals toevoeging van onderliggende elementen of wijzigingen in de kenmerken van het element. (Je kunt meer lezen over MutationObserver in mijn bericht.)
7. Pragma
Pragma is een afkorting voor pragmatische informatie. In gewoon Engels is pragmatisch een bijvoeglijk naamwoord dat verstandig en praktisch betekent. In programmeren, pragma verwijst naar de code die bestaat uit nuttige informatie over hoe een compiler of tolk of assembler het programma moet verwerken.
Het draagt niets bij aan de programmeertaal zelf en de syntaxis ervan kan variëren. Ze hebben alleen invloed op het compiler-gedrag. JavaScript heeft ook weinig pragma's, waaronder een streng
.
"gebruik strikt";
Door het bovenstaande pragma, zal de JavaScript-code worden uitgevoerd in strikte modus. In strikte modus is slechte syntaxis niet toegestaan, hijsen is niet gedaan, stille fouten worden getoond, enz. Het helpt in een veiligere en geoptimaliseerde JavaScript-code schrijven.
8. Sentinel
Sentinels zijn soldaten die op wacht staan (Weet je nog die van X-Men?). In programmeren, schildwachten zijn waarden die worden gebruikt om het einde van een lus of proces aan te geven. Ze kunnen ook worden genoemd “vlaggen”.
U kunt elke redelijke waarde gebruiken als een schildwacht. Hier is een voorbeeld van schildwachten gebruikt in JavaScript; de index van
methode die -1 (de waarde van de sentinel) oplevert als de zoekwaarde niet wordt gevonden in de getargete string. Hieronder staat een functie die de positie van een arrayswaarde retourneert en als de waarde niet wordt gevonden, wordt -1 geretourneerd.
functie getPos (ary, val) var i = 0, len = ary.length; voor (; i9. Vanille
Ik denk dat ieders eerste ijssmaak vanille moet zijn geweest. Ik denk ook dat niet alleen in ijs, maar in vrijwel elk zoet gerecht vanille soort werd de standaard smaak. Ik heb een flink aantal taartrecepten gezien waarbij er minstens één druppel ervan in de mix wordt gedaan om de smaak te verhogen.
En dat is wat vanille is een traditionele standaard smaak. Vanille JavaScript wordt verwezen naar het standaard JavaScript - geen raamwerk. Vanille wordt namelijk niet alleen gebruikt om de standaardversie van JavaScript te beschrijven, maar ook in andere talen zoals CSS.
10. Variadic
variadic is een bijvoeglijk naamwoord gemaakt door lid te worden “veranderlijk” en “adicity”. “Adicity” is van het oude Grieks, met een betekenis die hetzelfde is als het Latijnse woord “ariteit” (Item 1 in deze lijst). Dus de term variadic is gewend aan iets uitdrukken dat een variabel aantal argumenten heeft.
In JavaScript, a variadic functie neemt een willekeurig aantal argumenten in beslag. Het kan worden gemaakt met
argumenten
eigendom,van toepassing zijn
methode en sinds ES6, de spread-operator. Hieronder ziet u een voorbeeld met een spread-operator.functietest (... a) console.log (a); test ('a', 'b', 'c', 8, [56, -89]); // output is Array ["a", "b", "c", 8, Array [2]]