JavaScript · Senior · Pytanie 48 z 75
Czym jest Temporal Dead Zone dla parametrów domyślnych?
function f(a = b, b = 1) { return a; }
f();- ✓Poprawna odpowiedź:
ReferenceError: parametrbnie jest jeszcze zainicjalizowany przy obliczaniua - 2Zwraca
1: parametry domyślne są obliczane w dowolnej kolejności - 3Zwraca
undefined:bjest hoistowany z wartościąundefined
Wyjaśnienie
Parametry są inicjalizowane od lewej do prawej i zachowują się jak let: dostęp do jeszcze niezainicjalizowanego parametru to błąd TDZ. W odwrotnej kolejności (a = 1, b = a) działa. Wartości domyślne są obliczane przy każdym wywołaniu, a nie raz.