Czy zawsze w jot esie gdy chcę zadeklarować zmienną globalną powinienem użyć var a nie coś innego?
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?
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
.
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
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.
Zasięg zmiennych powinien być tak mały jak się tylko da. Jeśli masz wybór przekazać coś jako parametr, lub stworzyć zmienną globalną - przekaż parametr. Zmienne globalne dodają ukryte powiązania między elementami.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.