Jak duży powinien być zasięg zmiennych?

Wątek przeniesiony 2023-03-12 00:44 z JavaScript przez Riddle.

0

Czy zawsze w jot esie gdy chcę zadeklarować zmienną globalną powinienem użyć var a nie coś innego?

0

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?

1
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.

0
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

1

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.

4

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.