Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Vlákno názorů k článku
Javascript a oblast působnosti proměnných - díl první

Daniel Steigerwald
Daniel Steigerwald (neregistrovaný) ---.67.broadband2.iol.cz
7. 8. 2009 20:45

JavaScript díl 1 - proměnné

.. abych jen nekybicoval, jak bych to napsal já.

Proměnou deklarujeme pomocí klíčového slova „var“, např.

var bla = 'foo'.

To var tam dávejte vždycky, poběží to sice bez toho, ale koledujete si zbytečně o problémy, protože proměnná tak bude globální a jelikoz Internet Explorer propaguje všechny ID elementů do globálního scope, může dojít ke kolizi názvů.

Funkci deklarujete bud tak, ze ji pojmenujete:

function foo() {}

nebo priradite anonymní funkci deklarované proměnné:

var foo = function() {}

Kombinace obou přístupů je možná, ale zbytečná.

Chcete-li 100% crossbrowser přístup, tak na pojmenované funkce zapomeňte, prohlížeče je interpretují rozdílně. Třeba safari nadeklaruje i tuto funkci:

if (false) function foo(){};

takže vždy psát:

var foo = function() {};

Jakmile proměnou deklarujete, můžete ji používat a odkazovat se na ní. Jaká je její viditelnost? Proměnná je viditelná v celém scope(rozsahu) funkce, ve které je definovaná. Pokud není definovaná ve funkci, je viditelná všude, tedy globální.

Co to znamená scope? Všechno uvnitř nějaké funkce:

var foo = function() { // tady je scope foo var bla = function() { // tady je scope bla } }

Scope funkce, jak je vidět, tedy může být zanořený. Zanořovat lze do alelůja, vydáme-li se však opačným směrem, skončíme u objektu window (pakliže se bavíme o javascriptu v prohlížečích).

Další díl: co je to „context“ a jak funguje „this“.

:)

Martin Malý aura:93
7. 8. 2009 20:49

Re: JavaScript díl 1 - proměnné

… zbývá tedy jediná otázka: A proč to tedy nenapíšete jako článek a nenabídnete redakci?

Timy _ aura:74
8. 8. 2009 11:21

Re: JavaScript díl 1 - proměnné

Není zažitým překladem scope „prostředí“? Nebo je to zažité jen u nás na škole? :-) Klasicky u nás říkáme lexikální prostředí (lexical scope) a lexikální uzávěr (lexical closure).
Borek Bernard aura:66
8. 8. 2009 12:23

Re: JavaScript díl 1 - proměnné

Řekl bych, že překlad „prostředí“ moc zažitý nebude. Já ho třeba slyším prvně :)

Daniel Steigerwald
Daniel Steigerwald (neregistrovaný) ---.67.broadband2.iol.cz
8. 8. 2009 12:49

Re: JavaScript díl 1 - proměnné

Já jsem oba pojmy už slyšel, na „úzávěr“ se totiž nedá zapomenout :) Každopádně google vrací na „lexikální prostředí“ 18 výsledků, takže asi moc zažitý skutečně nebude :-) „úroveň HTML dokumentu“ pana Staníčka pak odkazy dva :)

povinná
povinná (neregistrovaný) ---.62.broadband3.iol.cz
11. 8. 2009 21:55

Re: JavaScript díl 1 - proměnné

„scope“ jako „prostředí“ opravdu zažité nebude, nicméně „scope“ jako „obor platnosti“ a „environment“ jako „prostředí“ zažité jsou.

Zasílat nově přidané příspěvky e-mailem