Výchozí parametry JavaScriptu

V tomto kurzu se na příkladech dozvíte o výchozích parametrech JavaScriptu.

Koncept výchozích parametrů je nová funkce zavedená ve verzi Java ES6 JavaScriptu. To nám umožňuje dát výchozí hodnoty funkčním parametrům. Vezměme si příklad,

 function sum(x = 3, y = 5) ( // return sum return x + y; ) console.log(sum(5, 15)); // 20 console.log(sum(7)); // 12 console.log(sum()); // 8

Ve výše uvedeném příkladu je výchozí hodnota xje 3 a výchozí hodnota yje 5 .

  • sum(5, 15)- Když jsou předány oba argumenty, xtrvá 5 a ytrvá 15 .
  • sum(7)- Když je 7 předáno sum()funkci, xvezme 7 a yvezme výchozí hodnotu 5 .
  • sum()- Pokud funkci sum () nepředá žádný argument , xvezme výchozí hodnotu 3 a yvezme výchozí hodnotu 5 .
Jak fungují výchozí argumenty v JavaScriptu

Použití výrazů jako výchozích hodnot

Je také možné zadat výrazy jako výchozí hodnoty.

Příklad 1: Předávání parametrů jako výchozích hodnot

 function sum(x = 1, y = x, z = x + y) ( console.log( x + y + z ); ) sum(); // 4

Ve výše uvedeném programu

  • Výchozí hodnota xje 1
  • Výchozí hodnota yje nastavena na xparametr
  • Výchozí hodnota zje součet xay

Pokud uvedete odkaz na parametr, který ještě nebyl inicializován, zobrazí se chyba. Například,

 function sum( x = y, y = 1 ) ( console.log( x + y); ) sum(); 
Výstup
 ReferenceError: Před inicializací nelze získat přístup k „y“

Příklad 2: Předání hodnoty funkce jako výchozí hodnoty

 // using a function in default value expression const sum = () => 15; const calculate = function( x, y = x * sum() ) ( return x + y; ) const result = calculate(10); console.log(result); // 160

Ve výše uvedeném programu

  • 10 se předá calculate()funkci.
  • xse stává 10a ystává se 150(funkce součtu se vrací 15).
  • Výsledek bude 160.

Předávání nedefinované hodnoty

Když v JavaScriptu předáte undefinedfunkci výchozího parametru, funkce nabere výchozí hodnotu. Například,

 function test(x = 1) ( console.log(x); ) // passing undefined // takes default value 1 test(undefined); // 1

Zajímavé články...