lass mal das "var" in f2() weg, damit definierst du eine lokale variable und die globale wird nicht verwendet.
Hallo
da ich gerade angefangen habe Javascript zu lernen bin ich noch nicht so schnell im kapieren![]()
Hier ist mal das Beispiel:
<html>
<head><title>Sichtbarkeit von Variablen</title>
<script language="JavaScript" type="text/javascript">
<!-- Inhalt vor alten Browsern verstecken
// Definition einer Funktion, die die Variable
// aus dem Hauptprogramm veraendert
function f1()
{
document.writeln("f1: Wert von x ist ",x);
x = 10;
document.writeln("f1: Wert von x ist ",x);
}
// Definition einer Funktion, die eine lokale
// Variable definiert
function f2()
{
document.writeln("f2: Wert von x ist ",x);
var x = 15;
document.writeln("f2: Wert von x ist ",x);
}
// Ende: Inhalt verstecken -->
</script>
</head>
<body>
<h1>Sichtbarkeit von Variablen</h1>
<pre>
<script language="JavaScript" type="text/javascript">
<!-- Inhalt vor alten Browsern verstecken
// Definition von x
var x = 5;
// Ausgabe des Wertes von x
document.writeln("HP: Wert von x ist ",x);
// Aufruf der Funktion f1()
f1();
// Ausgabe des Wertes von x
document.writeln("HP: Wert von x ist ",x);
// Aufruf der Funktion f2()
f2();
// Ausgabe des Wertes von x
document.writeln("HP: Wert von x ist ",x);
// Ende: Inhalt verstecken -->
</script>
</pre>
<noscript>
Ihr Browser kann keine JavaScript-Programme
ausführen. Aus diesem Grund sehen Sie hier
nichts. :-(
</noscript>
</body>
</html>
Und das kommt hier dabei raus:
HP: Wert von x ist 5
f1: Wert von x ist 5
f1: Wert von x ist 10
HP: Wert von x ist 10
f2: Wert von x ist undefined
f2: Wert von x ist 15
HP: Wert von x ist 10
Ich verstehe da aber was nicht!
Warum ist f2 undefiniert?
und das letzte HP wieder x=10 ?
Vielen dank für Eure Hilfe
lg
claudi
lass mal das "var" in f2() weg, damit definierst du eine lokale variable und die globale wird nicht verwendet.
mmmh,![]()
dass das 2. f2 local ist kann ich ja verstehen, aber was ist mit dem ersten?
function f2()
{
document.writeln("f2: Wert von x ist ",x); <--- der bekommt doch nicht
var x=15 , erst das nächste?!
var x = 15;
document.writeln("f2: Wert von x ist ",x);
}
warum nimmt er dann nicht die globale 10 ?
naja, wenn er in die funktion springt fängt der interpreter ja nicht gleich an die prozedur abzuarbeiten. er chekct ja erstmal ob es irgendwelche konfliket gibt, wie z.b. die zwischen der globalen X und der lokal angelegten X. er tut also so als ob die globale variable garnicht exisitiert, weil ja anschliessend eine lokale belegt wird.
so in etwa
is halt so![]()
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)