• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Hoisting w JavaScript, pytanie pocztkującego

Object Storage Arubacloud
+3 głosów
156 wizyt
pytanie zadane 5 kwietnia 2022 w JavaScript przez Yorweth Obywatel (1,310 p.)
Cześć

Mam pytanie strikte początkującego w JS, a chodzi mi dokładniej o histing.

Rozumiem, że wynosi on deklarację na górę kodu lub funkcji, dzięki czemu możemy jej użyć przed jej zadeklarowaniem.

Ale...

Nie wiem czy gdzieś moje myślenie się zacięło lub potrzebuje dobrego przykładu, ale w czym to pomaga poza wystąpieniem jakiegoś większego błędu? Pytam ponieważ zastanawiam się jaki to ma sens skoro inicjalizacja i tak nie zostaje przeniesiona, czyli w teorii jak mamy tego użyć skoro i tak wyrzuci "undefinded" lub że nie jest zainicjalizowana?

Pomaga to w czymś poza rozsypaniem się kodu?

Przepraszam może za głupie pytanie, ale czytając o tym w Internecie jakby nie potrafiłem zauważyć innych wartości zagadnienia :D

2 odpowiedzi

+1 głos
odpowiedź 5 kwietnia 2022 przez ScriptyChris Mędrzec (190,190 p.)

Osobiście nie wiem jaka jest zaleta hoistingu w przypadku zmiennych tworzonych słówkiem var - tym bardziej, że hoistowany jest sam identyfikator zmiennej, bez przypisanej wartości (stąd odwołując się do zmiennej przed miejscem jej deklaracji otrzymuje się undefined). Natomiast jest to o tyle przydatne przy funkcjach tworzonych słówkiem function, że można wizualnie ukryć implementację funkcji niżej w skrypcie - zaś używać jej wyżej - co może poprawić czytelność kodu; choć pewnie zależy to od konwencji przyjętej w projekcie.

Można tu przytoczyć wypowiedź twórcy JavaScript, Brendan'a Eich'a:

function hoisting allows top-down program decomposition, 'let rec' for free, call before declare; var hoisting tagged along

+

var hoisting was thus unintended consequence of function hoisting, no block scope, JS as a 1995 rush job. ES6 'let' may help 

Z tego wynika, że hosting dla var powstał jako niezamierzona konsekwencja dla hostingu funkcji; a hosting tych drugich pozwala rozdzielić program na część górną i dolną, gdzie najpierw można wywołać funkcję, a potem ją utworzyć.

0 głosów

Podobne pytania

0 głosów
2 odpowiedzi 373 wizyt
pytanie zadane 5 lipca 2018 w JavaScript przez kwiec.kwiec Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 205 wizyt
pytanie zadane 21 października 2017 w JavaScript przez BlvckFox Gaduła (4,240 p.)
0 głosów
1 odpowiedź 253 wizyt
pytanie zadane 12 października 2017 w JavaScript przez fazii08 Nowicjusz (120 p.)

92,563 zapytań

141,413 odpowiedzi

319,590 komentarzy

61,948 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...