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

Tworzenie zmiennych w skryptach działających na DOM

Object Storage Arubacloud
0 głosów
118 wizyt
pytanie zadane 8 września 2019 w JavaScript przez mb-dir Mądrala (6,710 p.)

Witam

Chciałbym poznać waszą opinie na temat tworzenia zmiennych w JS, ja przy skryptach które będą działać na DOM 'ubieram' cały takowy skrypt w 'DOMContentLoaded' i wewnątrz tego tworzę wszystko(włącznie z zmiennymi) - przykład. Jednak czasem spotykam się z takim podejściem. Ja jestem bardziej przychylny do pierwszego sposobu, bo nie ma możliwości żeby przypadkowo nadpisać zmienną, jednak chciałbym poznać Waszą opinie.

Pozdrawiam

 

2 odpowiedzi

+1 głos
odpowiedź 8 września 2019 przez Comandeer Guru (601,450 p.)

Po to stworzono zasięg blokowy, żeby nie robić zmiennych o zasięgu funkcyjnym i globalnym. Stąd to drugie podejście uznałbym za niepoprawne wykorzystanie zmiennej let. Co więcej, tworzymy zmienną możliwą do nadpisania tylko i wyłącznie dlatego, że nie chcemy używać zasięgu blokowego! Czyli zamiast jednego problemu, tworzymy od razu dwa.

Dodatkowo obecnie większość kodu jest pisana z myślą o modułach ES, gdzie problem nadpisywania zmiennych de facto nie istnieje. Wszystkie zmienne pozostają wewnątrz modułu i nie wypływają na zewnątrz. Natomiast używanie takich modułów bezpośrednio w przeglądarce (script[type=module]) rozwiązuje też problem odpalania kodu operującego na DOM dopiero po jego wczytaniu. Wszystkie bowiem moduły odpalają się po wczytaniu DOM, w kolejności, w jakiej występują w kodzie (czyli podobnie do tradycyjnych skryptów z parametrem [defer]). Tym samym można zapomnieć  o zdarzeniu DOMContentLoaded.

0 głosów
odpowiedź 8 września 2019 przez adrian17 Ekspert (344,860 p.)
Trzecia opcja: wrzuć skrypty na dół <body> i w ogóle o tym nie myśl.
komentarz 8 września 2019 przez Comandeer Guru (601,450 p.)

No nie do końca, bo takie skrypty nie wczytują się w dokładnie taki sposób, w jaki sobie byśmy najczęściej życzyli → https://addyosmani.com/blog/script-priorities/

komentarz 8 września 2019 przez adrian17 Ekspert (344,860 p.)
Może być też <script defer> (faktycznie jeszcze lepsza opcja), ale z tego co rozumiem, w jego nieobecności w praktyce <script> na dole będą ostatnie w kolejności, no i po parserze - więc sprawdzanie DOMContentLoaded już jest niepotrzebne.

W każdym razie, mój punkt pozostaje - idealnie zrobić to tak, żeby na poziomie JSa nie musieć się tym przejmować :D

Podobne pytania

+1 głos
3 odpowiedzi 211 wizyt
pytanie zadane 19 lutego 2023 w JavaScript przez Piotrek2713 Mądrala (5,380 p.)
0 głosów
1 odpowiedź 714 wizyt
pytanie zadane 20 listopada 2019 w JavaScript przez Bartx Bywalec (2,120 p.)
0 głosów
4 odpowiedzi 199 wizyt
pytanie zadane 10 października 2015 w C i C++ przez C☺ndzi Stary wyjadacz (12,100 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 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!

...