Hallo, Besucher der Thread wurde 924 aufgerufen und enthält 3 Antworten

letzter Beitrag von the-architect am

Hilfe zu Javascript Beispiel

  • Hallo


    da ich gerade angefangen habe Javascript zu lernen bin ich noch nicht so schnell im kapieren :D


    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

  • mmmh, :confused:


    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 :p

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden