Szybka i praktyczna ściągawka JavaScript firmy Toptal: ES6 i nie tylko
Opublikowany: 2022-03-11ECMAScript 6 (ES6) to najnowsza standardowa specyfikacja JavaScript , języka programowania sieci Web. Od czasu HTML5 i narodzin Node.js , środowiska wykonawczego, które pozwala nam uruchamiać JavaScript na serwerze lub komputerze, JavaScript nabrał wyjątkowego rozpędu. Wśród przedsiębiorstw rośnie wskaźnik przyjęcia go do produkcji, dlatego też bardzo oczekiwano na jego najnowsze funkcje.
Stworzyliśmy tę ściągawkę jako listę funkcji ES6, z których korzystamy na co dzień. Starając się być kompleksowa, ale zwięzła w tym samym czasie, nowe metody API są pominięte. Dla tych, którzy ich potrzebują, wykonaj szybkie wyszukiwanie samodzielnie lub spróbuj przejrzeć dokumentację MDN, aby złapać najnowsze eksperymentalne interfejsy API. Uwzględniono jednak niektóre najbardziej krwawiące cechy, takie jak async
i await
, z następnej wersji roboczej specyfikacji (ES7). Dzieje się tak, ponieważ większość z nas programistów i tak będzie używać transpilera takiego jak Babel, aby skorzystać z najnowszego JavaScriptu.
Możesz przetestować niektóre z wymienionych wskazówek, uruchamiając węzeł REPL za pomocą tego polecenia:
node --use-strict $(node --v8-options | grep harm | awk '{print $1}' | xargs) #ES6
Lub użyj bezpośrednio węzła babel, aby w pełni wykorzystać JavaScript w swojej konsoli.
Kliknij tutaj, aby pobrać ściągawkę JavaScript ES6
Ściągawka z JavaScript (ES6 i nie tylko)
Stałe | niech vs var | |
> const EULER = 2,7182818284 | > var średnia = 5 | |
Ostrzeżenie! W przypadku tablicy lub obiektu odwołanie jest utrzymywane na stałym poziomie . Jeśli stała jest odniesieniem do obiektu, nadal możesz modyfikować zawartość, ale nigdy nie zmieniać zmiennej. | ||
> stała STAŁE = [] | Pamiętaj o tymczasowych martwych strefach : | |
> console.log(val) // -> 'nieokreślony' | ||
Ponieważ jest to odpowiednik: | ||
Zapis binarny, ósemkowy i szesnastkowy | > zmienna wartość | |
> 0b1001011101 // 605 | ||
Zmienne zadeklarowane za pomocą „let/const” nie są przenoszone: | ||
Nowe typy | > konsola.log(wartość) | |
Symbole, mapy, słabe mapy i zestawy | ||
Funkcja strzałek | Nowe funkcje w zakresie | |
> setTimeout(() => { | > { | |
Odpowiednik funkcji anonimowej | Odpowiednik natychmiast wywołanych wyrażeń funkcji (IIFE) | |
> setTimeout(funkcja () { | > (funkcja () { | |
Nowości w notacji obiektów | Interpolacja ciągów dzięki literałom szablonowym | |
// Obliczone właściwości // Literały obiektowe // Taki sam jak } | > stała nazwa = 'Tygrys' // Możemy zachować nowe linie… ![]() | |
Parametry domyślne | ||
> function howAreYou (odpowiedź = 'ok') { | ||
Obietnice | Klasy, dziedziczenie, setery, gettery | |
nowa obietnica((rozwiąż, odrzuć) => { | class Rectangle rozszerza Kształt { | |
Tablice destrukturyzujące | Destrukturyzacja obiektów | |
> niech [a, b, c, d] = [1, 2, 3, 4]; | > niech luke = { zawód: 'jedi', | |
Operator rozprzestrzeniania się | ...Idź niszczyć jak szef | |
// Zamień tablice na oddzielone przecinkami | > const [ kot, pies, ...ryba ] = [ | |
Lub zrób lepsze pchnięcie | ...i destrukturyzacja w przyszłości ES7 | |
> niech arr = [1, 2, 3] | {a, b, ...odpoczynek} = {a:1, b:2, c:3, d:4} | |
Asynchroniczny ES7 | Czekaj na ES7 | |
funkcja asynchroniczna schrodinger () { | próbować { | |
Eksportuj ES7 | Importowanie ES7 | |
funkcja eksportu sumTwo (a, b) { | importuj React z „react” | |
Generatory | ||
Zwracają obiekty, które implementują protokół iteracji. tzn. ma metodę next(), która zwraca { value: < jakaś wartość>, done: <prawda lub fałsz> } . | ||
function* incRand (max) { // Gwiazdka definiuje to jako generator | ||
> var rng = incRand(2) // Zwraca obiekt generatora |