Przejdź do głównej zawartości

Przejdźmy po kolei przez operacje jakie wykonuje JavaScript.

Utworzona zostaje zmienna a bez przypisania wartości, czyli jej wartość to undefined.

Operator przypisania = przechodzi do ewaluacji wartości po prawej stronie operatora.

Utworzony zostaje obiekt z własnością a, której wartość to undefined.

Destrukturyzując obiekt, przemianowujemy własność obiektu o nazwie a na nazwę b, tworząc tym samym zmienną b.

Wprowadzony zostaje domyślny parametr "foo", który zostaje przypisany jako wartość zmiennej, w przypadku gdy wartość destrukturyzowanej własności obiektu okazałaby się fałszywa.

Z uwagi na to, że obiekt ma kształt { a: undefined }, to rozbijając go na zmienną a, przemianowaną na b, wartość własności a jest fałszywa, zostaje więc użyty parametr domyślny "foo".

Finalnie utworzona zostaje więc zmienna b z wartością "foo".

Zmienna a nie ulega po drodze żadnym modyfikacjom i zachowuje swoją początkową wartość undefined.