Forum » Programiranje » [JavaScript] učenje - poimenovanje id-jev, funkcij, spremenljivk itd. - na kaj moramo paziti
[JavaScript] učenje - poimenovanje id-jev, funkcij, spremenljivk itd. - na kaj moramo paziti
Miro-Slav ::
Na odlični spletni strani W3SCHOOLS se učim JavaScript. Naredim tudi vaje ("Try it Yourself"), ki so oblikovane za vsako podpoglavje posebej, torej tam seveda ni problema z unikatnim poimenovanjem npr. id-jev odstavkov ali funkcij v html-dokumentu, saj so dotični html-dokumenti kratki in "narejeni" za vsako vajo posebej, torej ne more priti do "pomešanja kode" z istimi imeni, kot če bi imel več odstavkov ali script-značk v enem dokumentu in bi moral paziti, da se določena imena ne ponavljajo.
Fora pa je, da si poleg teh vaj (Try it Yourself) sproti ustvarjam še poseben html-dokument v beležnici, ta dokument imam potem odprt v brskalniku in vadim tudi na "lokalni spletni strani". V ta dokument si torej zapisujem vse vaje, kot jih rešujem v Try it Yourself. A seveda je tu treba paziti, da vsak ID odstavka v znački P različno poimenuješ (če vse pustiš na "demo", so posledice jasne). In podobno je s poimenovanjem funkcij (in mogoče še česa, ampak nisem še tako daleč ).
Nekoliko drugače pa je očitno s poimenovanjem spremenljivk. Opažam namreč, da lahko v dveh zaporednih/različnih značkah SCRIPT v enem in istem html-dokumentu deklariram npr. enkrat var x = 5, drugič pa var x = 7, in ne bo prišlo do "zmede"; na spletni strani se bosta oba x-a (get.ElementById za dva različna odstavka) prikazala "pravilno": 5 in 7 v vsakem odstavku...
Pač tudi če imaš enako spremenljivko z različnima vrednostma v enem html-dokumentu, se ne bo nič pomešalo. Drugače pa bi bilo, če bi z eno in isto besedo (npr. "demo") poimenoval različna odstavka, to pač ne gre, če želiš poimenovati dva različna odstavka.
Mogoče veliko besed za preproste stvari, samo mi ni jasno, zakaj JS tako deluje. Oziroma ali res tako deluje, da me ne bo kdaj kasneje, ko bi "pisal kodo zares", kaj presenetilo. Namreč na w3schools v enem poglavju celo govorijo o tem, da morajo biti spremenljivke identificirane z unikatnimi imeni...potem me je pa malo zmedlo.
Torej zakaj morajo biti (kadar gre za en in isti html-dokument) npr. imena id-jev odstavkov unikatna ("demo1", "demo2"), medtem pa deklariranje spremenljivk deluje tudi, če je isto ime (x)...?
Fora pa je, da si poleg teh vaj (Try it Yourself) sproti ustvarjam še poseben html-dokument v beležnici, ta dokument imam potem odprt v brskalniku in vadim tudi na "lokalni spletni strani". V ta dokument si torej zapisujem vse vaje, kot jih rešujem v Try it Yourself. A seveda je tu treba paziti, da vsak ID odstavka v znački P različno poimenuješ (če vse pustiš na "demo", so posledice jasne). In podobno je s poimenovanjem funkcij (in mogoče še česa, ampak nisem še tako daleč ).
Nekoliko drugače pa je očitno s poimenovanjem spremenljivk. Opažam namreč, da lahko v dveh zaporednih/različnih značkah SCRIPT v enem in istem html-dokumentu deklariram npr. enkrat var x = 5, drugič pa var x = 7, in ne bo prišlo do "zmede"; na spletni strani se bosta oba x-a (get.ElementById za dva različna odstavka) prikazala "pravilno": 5 in 7 v vsakem odstavku...
Pač tudi če imaš enako spremenljivko z različnima vrednostma v enem html-dokumentu, se ne bo nič pomešalo. Drugače pa bi bilo, če bi z eno in isto besedo (npr. "demo") poimenoval različna odstavka, to pač ne gre, če želiš poimenovati dva različna odstavka.
Mogoče veliko besed za preproste stvari, samo mi ni jasno, zakaj JS tako deluje. Oziroma ali res tako deluje, da me ne bo kdaj kasneje, ko bi "pisal kodo zares", kaj presenetilo. Namreč na w3schools v enem poglavju celo govorijo o tem, da morajo biti spremenljivke identificirane z unikatnimi imeni...potem me je pa malo zmedlo.
Torej zakaj morajo biti (kadar gre za en in isti html-dokument) npr. imena id-jev odstavkov unikatna ("demo1", "demo2"), medtem pa deklariranje spremenljivk deluje tudi, če je isto ime (x)...?
- spremenilo: Miro-Slav ()
Stari89 ::
Mjah, Javascript ima svoje muhe glede scope-a. V drugih jezikih je to lepo rešeno z namespaci in classi, ki jih JS ne pozna. Do sedaj se je to enostavno reševalo s funkcijami. Šele z ES6 (specifikacija JS-ja za 2015) so se zadeve počasi začele premikat v pametno smer (classi, let/const spremenljivke, etc).
Čeprav še nisi obdelal funkcij, je tole morda relevanten članek zate.
Lepo, da o tem razmišljaš že v začetnih fazah učenja. LP
Čeprav še nisi obdelal funkcij, je tole morda relevanten članek zate.
Lepo, da o tem razmišljaš že v začetnih fazah učenja. LP
Zgodovina sprememb…
- spremenilo: Stari89 ()
Miro-Slav ::
Hvala za članek in izraz scope; zdaj vem, da imajo zadeve iz mojega vprašanja svoje ime,
lahko brskam naprej.
Lp
lahko brskam naprej.
Lp
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Pomoč pri json datotekiOddelek: Programiranje | 1276 (923) | sasha991 |
» | SQL/DML stavkiOddelek: Šola | 3342 (2684) | IL_DIAVOLO |
» | Html, cssOddelek: Izdelava spletišč | 3845 (444) | Volk| |
» | Layout, div ?Oddelek: Izdelava spletišč | 2274 (1801) | crow_pec |
» | Kako aktivirati CSS v htm ??Oddelek: Izdelava spletišč | 1543 (1424) | webfreak |