szczecinski.eu

szczecinski.eu

  • Kurs React
  • Zaawansowany React
  • Kurs Redux
  • Kurs ES6
  • Blog
  • Kontakt

›Szybki kurs ES6

Szybki kurs ES6

  • Specyfikatory zasięgu - const, let
  • Template strings, tagged template strings
  • Arrow functions
  • Parametry domyślne, destructuring i rest
  • Skrócona notacja obiektowa, dynamiczne właściwości obiektu, spread
  • Klasy
  • Moduły
  • Kod asynchroniczny - Promise
  • Dekoratory

Parametry domyślne, destructuring i rest

Funkcje mogą od teraz deklarować wartości domyślne dla parametrów, dzięki czemu nie ma potrzeby rozwiązywania tego problemu w ciele funkcji. Dodatkowo pojawia się możliwość destrukturyzacji, czyli wybierania tylko niektórych kluczy z obiektów i tablic.

W odróżnieniu od innych języków, wartości domyślne mogą być dodane do dowolnej zmiennej, nie ma konieczności definiowania wartości domyślnych do wszystkich zmiennych kolejnych po tej, która deklaruje swoją wartość domyślną. W JS wszystkie nie przekazane zmienne otrzymują wartość undefined.

function test(a, b = 42, c) {
  console.log(a, b, c);
}
test(); // undefined, 42, undefined

destrukturyzowanie

Destrukturozywanie przydaje się wszędzie tam, gdzie wiemy, że funkcja wywoływana będzie z obiektem / tablicą, ale interesują nas tylko wybrane klucze.

Oczywiście i w tym wypadku możemy nadać zmiennym wartości domyślne.

function testObject({ jeden = 42 }) {
  console.log(jeden);
}

testObject({jeden: 1, dwa: 2}); // "1"
testObject({dwa: 2}); // "42"

function testArray([jeden]) {
  console.log(jeden);
}
testArray(["jeden", "dwa"]); // "jeden"

Operator rest

Istnieje także możliwość przechwycenia wielu parametrów do jednej zmiennej. Możemy przechwycić wszystkie parametry, lub zadeklarować listę parametrów, które chcemy pobrać oddzielnie, oraz pobrać pozostałe do tablicy.

function test(...input) {
  console.log(input);
}              
test(1,2,3); // [1,2,3]

function testOgraniczony(pierwszy, ...input) {
  console.log(pierwszy, input);
}
testOgraniczony(1,2,3); // 1, [2,3]
← Arrow functionsSkrócona notacja obiektowa, dynamiczne właściwości obiektu, spread →
  • destrukturyzowanie
  • Operator rest
Bartosz Szczeciński © 2019 Materiał dostępny na zasadach licencji MIT.