Toptals schneller und praktischer JavaScript-Spickzettel: ES6 und darüber hinaus
Veröffentlicht: 2022-03-11ECMAScript 6 (ES6) ist die neueste Standardspezifikation von JavaScript , der Programmiersprache des Webs. Seit HTML5 und der Geburt von Node.js , der Laufzeitumgebung, die es uns ermöglicht, JavaScript auf dem Server oder Desktop auszuführen, hat JavaScript eine einzigartige Dynamik erlangt. Es gibt eine wachsende Akzeptanzrate bei Unternehmen, die es in die Produktion aufnehmen, und daher wurden seine neuesten Funktionen mit Spannung erwartet.
Wir haben diesen Spickzettel als Liste von ES6-Funktionen erstellt, die wir täglich verwenden. Um umfassend und gleichzeitig prägnant zu sein, bleiben neue API-Methoden außen vor. Für diejenigen, die sie brauchen, führen Sie selbst eine schnelle Suche durch oder versuchen Sie, die MDN-Dokumentation zu durchsuchen, um die neuesten experimentellen APIs zu finden. Allerdings sind einige der modernsten Eigenschaften wie async
und await
from the next Specification Draft (ES7) enthalten. Dies liegt daran, dass die meisten von uns Entwicklern sowieso einen Transpiler wie Babel verwenden werden, um das neueste JavaScript zu nutzen.
Sie können einige der genannten Tipps testen, indem Sie den Knoten REPL mit diesem Befehl ausführen:
node --use-strict $(node --v8-options | grep harm | awk '{print $1}' | xargs) #ES6
Oder verwenden Sie direkt einen babel-Knoten, um das Beste aus Javascript in Ihrer Konsole herauszuholen.
Klicken Sie hier, um den JavaScript ES6-Spickzettel herunterzuladen
JavaScript (ES6 und höher) Spickzettel
Konstanten | lassen vs var | |
> const EULER = 2,7182818284 | > var Durchschnitt = 5 | |
Warnung! Bei Array oder Objekt wird die Referenz konstant gehalten . Wenn die Konstante eine Referenz auf ein Objekt ist, können Sie immer noch den Inhalt ändern, aber niemals die Variable. | ||
> const KONSTANTEN = [] | Seien Sie sich der zeitlichen Todeszonen bewusst : | |
> console.log(val) // -> 'undefiniert' | ||
Denn es ist äquivalent zu: | ||
Binär-, Oktal- und Hex-Notation | > var val | |
> 0b1001011101 // 605 | ||
Mit "let/const" deklarierte Variablen werden nicht gehisst: | ||
Neue Typen | > Konsole.log(val) | |
Symbole, Karten, WeakMaps und Sets | ||
Pfeilfunktion | Neue Bereichsfunktionen | |
> setTimeout(() => { | > { | |
Entspricht der anonymen Funktion | Äquivalent zu sofort aufgerufenen Funktionsausdrücken (IIFE) | |
> setTimeout (Funktion () { | > (Funktion () { | |
Neuheiten in der Objektnotation | String-Interpolation dank Template-Literalen | |
// Berechnete Eigenschaften // Objektliterale // Gleich wie } | > konstanter Name = 'Tiger' // Wir können Zeilenumbrüche beibehalten… ![]() | |
Standardparameter | ||
> Funktion wie gehts dir (antwort = 'ok') { | ||
Versprechen | Klassen, Vererbung, Setter, Getter | |
neues Versprechen ((auflösen, ablehnen) => { | Klasse Rechteck erweitert Form { | |
Destrukturieren von Arrays | Destrukturieren von Objekten | |
> sei [a, b, c, d] = [1, 2, 3, 4]; | > let luke = { Beruf: 'Jedi', | |
Spread-Operator | ... Destrukturieren Sie wie ein Boss | |
// Arrays in kommaseparierte umwandeln | > const [ Katze, Hund, ... Fisch ] = [ | |
Oder machen Sie einen besseren Stoß | ...und Destrukturierung in der Zukunft ES7 | |
> let arr = [1, 2, 3] | {a, b, ... Ruhe} = {a:1, b:2, c:3, d:4} | |
Asynchron ES7 | Warte auf ES7 | |
Async- Funktion Schrödinger () { | Versuchen { | |
ES7 exportieren | ES7 importieren | |
Exportfunktion summeZwei (a, b) { | Reagieren von 'reagieren' importieren | |
Generatoren | ||
Sie geben ein Objekt zurück, das ein Iterationsprotokoll implementiert. dh es hat eine next()-Methode, die { value: <some value>, done: <true or false> } zurückgibt . | ||
function* incRand (max) { // Asterisk definiert dies als Generator | ||
> var rng = incRand(2) // Gibt ein Generatorobjekt zurück |