#2. Zagadka JavaScript

Paweł Niedźwiecki

Co warto wiedzieć, przed próbą udzielenia odpowiedzi ? 

  • hoisting, windowanie – JavaScript
  • zasięg zmiennych i funkcji w JavaScript

Zapoznaj się z kodem poniżej i daj znać jakie wartości uzyskamy w console.log

1 2 3 4 5 6 var price = 99; var getCoursePrice = function () { console.log(price); var price = 100; }; getCoursePrice();

Odpowiedź :

W tym przykładzie wyświetlona zostanie wartość undefined.

Jest to spowodowane tym, że w JavaScript wszystkie deklaracje funkcji i zmiennych są hoistowane, ale tylko var są inicializowane przez undefined.

Deklaracja var price = 100; jest więc przenoszona na górę function scope jako var price; W momencie wywołania silnik JavaScript odwołuje sie do tej lokalnej zmiennej, która przesłania zmienną istiejącą poza zkresem funkcji. 

Deklaracja var price = 99; nie jest w ogóle wykorzystywana podczas działania skryptu. 

Paweł Niedźwiecki

elektronika, programowanie, biznes, podróże

więcej
  • praca

    Software Developer

  • lokalizacja

    Warszawa, Polska

  • wiek

    31

Więcej odPaweł

  • Add article