Czy zawsze w jot esie gdy chcę zadeklarować zmienną globalną powinienem użyć var a nie coś innego?
Jak duży powinien być zasięg zmiennych?
Wątek przeniesiony 2023-03-12 00:44 z JavaScript przez Riddle.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 22
- Rejestracja: dni
- Ostatnio: dni
- Postów: 8536
Co masz na myśli przez zmienną globalną? Gdzie chcesz tej zmiennej używać i gdzie chcesz żeby była widoczna? W jaki sposób organizujesz swój kod w plikach? Korzystasz z modułów?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: U krasnoludów - pod górą
- Postów: 4730
odkurzaczyk napisał(a):
Czy zawsze w jot esie gdy chcę zadeklarować zmienną globalną powinienem użyć var a nie coś innego?
Pamiętam czasy jak w js zmienną globalną się miało jak się nie użyło var.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2310
jarekr000000 napisał(a):
odkurzaczyk napisał(a):
Czy zawsze w jot esie gdy chcę zadeklarować zmienną globalną powinienem użyć var a nie coś innego?
Pamiętam czasy jak w js zmienną globalną się miało jak się nie użyło
var.
W pehapczyku też odwrócili na przeciwne wiele rzeczy w czasie. Oba jezyki powstały miotane przypadkowymi decyzjami, na zasadzie widziałem przez ramię tak a tak więc powtórzę, choć nie rozumiem (dolary z Perla)... Targetowane na bardzo małą skalę i w tym kontekście taka wizja byłą zgodna. Język do wypisania wśród stałego HTML kilku zmiennych właśnie preferuje globale
- Rejestracja: dni
- Ostatnio: dni
- Postów: 8536
no ogólnie, zmienna globalna ma być dostępna w całym dokumencie. używać głównie w funkcjach. nie korzystam z modułów póki co tylko index.html, style.css i main.js bez typescriptow i frameworkow —
po prostu na szczycie main.js możesz zadeklarować swoje zmienne (ale nie potrzebujesz var, możesz to zrobić za pomocą let czy const. Owszem, var doczepiłby to do obiektu window, ale i tak tego nie potrzebujesz w tym momencie).
No i miej świadomość, że zmienne globalne ogólnie to słaby pomysł na dużą skalę.
Nie wiem, ile masz tego kodu, ale jeśli to jakieś 100-200 linijek kodu, to jeszcze zmienne globalne ujdą, ale jeśli kod idzie w tysiące, to coś robisz nie tak.
Jak współdzielisz zmieniający się stan w wielu miejscach, to łatwo napisać spaghetti kod, nad którym nie będziesz panować. Dopóki twój projekt jest mały, to da radę to ogarnąć, ale jeśli się rozrasta, zaczyna to boleć. W szczególności jeśli zaczynasz dzielić swój projekt na wiele różnych plików, to kiepskim pomysłem jest odwoływanie się do tych samych zmiennych w różnych plikach (komunikację między różnymi częściami apki lepiej robić na inne sposoby). Ale jak rozumiem JS masz tylko w main.js?
nie korzystam z modułów póki co
A możesz. Teraz przeglądarki obsługują natywnie moduły.
Wystarczy, że zrobisz:
<script type="module">......</script>
dzięki temu jak będziesz miał większą apkę (i będziesz ją chciał podzielić na wiele plików), to będzie jakaś struktura.
a później możesz też użyć jakiegoś bundlera (np. Webpack, Esbuild) w razie potrzeby.