ugrás a tartalomhoz

JS változó érvényessége egy függvényen belül

haho · 2012. Júl. 5. (Cs), 03.20
Sajnos nem tudtam egész pontos címet kitalálni, ami rövid is.

Vegyük ezt a példát:
function fugi(valtozo) {
if(typeof(valtozo)=="undefined") {
valtozo="alapertek";
}
}

A kérdésem:
Ha a függvény "valtozo" nevű változójának alapértéket adok a függvényen belül a példában látható typeof ellenőrzés után, akkor az alapértéket a var kulcsszóval kell megadnom ahhoz, hogy az adott változó csak a függvényen belül legyen érvényes vagy a javascript felismeri, hogy ugyanaz a változó név, mint ami a függvény egyik értéke lehet és var nélkül is csak a függvényen belül lesz érvényes?

Példával: ha azt akarom, hogy a "valtozo" változó csak a függvényen belül legyen érvényes miután alapértéket adok neki akkor kell a var kulcsszó így:
if(typeof(valtozo)=="undefined") {
VAR valtozo="alapertek";
}

Remélem nem bonyolítottam túl ezt az egyszerű kérdést. Köszi.
(Tudom: próbáljam ki. De talán hasznos lehet másoknak is a válasz.)
 
1

nem kell a var kulcsszót

Karvaly84 · 2012. Júl. 5. (Cs), 07.01
nem kell a var kulcsszót használni mert avval felül definiálnád a paraméterben kapott adatot. Ebből következik, hogy amikor beérsz a függvénybe a valtozo már elérhető, és csak a függvényen belül. Akkor is ha paraméter nélkül hívod meg a függvényt, ekkor undefined lesz az értéke.
2

Lokális változó

Poetro · 2012. Júl. 5. (Cs), 07.03
A paraméterként átadott változó lokálus. Ugyanakkor a JavaScript referenciaként adja át a paramétereket, azaz, ha a paraméter nem primitív, akkor ha módosul, az a függvényen kívül is hatással van az objektumra (mivel referencia ugye).

Mivel paraméter, ezért nem kell var kulcsszóval deklarálni, sőt, a legtöbb kód ellenőrző eszköz szólni is fog, hogy egy már létező lokális változót akarsz újra deklarálni.