bernd: so eine art isset () für Javascript

Hallo,

gibt es eine Möglichkeit die Existenz einer Variablen zu prüfen, ohne eine Fehlermeldung zu erhalten. In PHP kann man dies ja mit isset() prüfen ohne das es zum Abbruch des Code kommt.

gruß
bernd

  1. Hallo bernd,

    gibt es eine Möglichkeit die Existenz einer Variablen zu prüfen, ohne eine Fehlermeldung zu erhalten.

    typeof sollte das können.

    Mit freundlichem Gruß
    Micha

    --
    LeagueEditor JavaScript :: simple Ligaverwaltung auf der Basis von JavaScript || JS Tetris :: für zwischendurch
    1. Hallo derletztekick.

      gibt es eine Möglichkeit die Existenz einer Variablen zu prüfen, ohne eine Fehlermeldung zu erhalten.
      typeof sollte das können.

      Alternativ kann man dies auch direkt abfragen:

      if (foo != undefined) {  
        // Code  
      }
      

      Einen schönen Dienstag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
      [HTML Design Constraints: Logical Markup]
      1. Hi,

        Alternativ kann man dies auch direkt abfragen:

        das ergibt gegebenenfalls eine Warnung.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hallo Cheatah.

          Alternativ kann man dies auch direkt abfragen:

          das ergibt gegebenenfalls eine Warnung.

          Stimmt. Ist auch logisch, da hier auf die Variable zugegriffen werden muss, bevor sie mit „undefined“ verglichen werden kann.

          Einen schönen Dienstag noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
          [HTML Design Constraints: Logical Markup]
          1. Danke für die Antworten.

            Somit gibt es also keine derartige Möglichkeit?
            HHMmmmm, das ist ja doof.

            Bernd

            Hallo Cheatah.

            Alternativ kann man dies auch direkt abfragen:

            das ergibt gegebenenfalls eine Warnung.

            Stimmt. Ist auch logisch, da hier auf die Variable zugegriffen werden muss, bevor sie mit „undefined“ verglichen werden kann.

            Einen schönen Dienstag noch.

            Gruß, Ashura

            1. Somit gibt es also keine derartige Möglichkeit?

              doch, https://forum.selfhtml.org/?t=132062&m=854367

              Struppi.

              --
              Javascript ist toll (Perl auch!)
            2. Huhu Bernd,

              Somit gibt es also keine derartige Möglichkeit?

              if(window.foo){
                    alert ('foo is definded');
              }

              Viele Grüße

              lulu

              --
              bythewaythewebsuxgoofflineandenjoytheday
              1. Hallo,

                if(window.foo){
                      alert ('foo is definded');
                }

                Wieso votiert hier jemand für nicht hilfreich? Der Tipp ist (teilweise) korrekt für globale Variablen.

                Der Zugriff über das Elternobjekt ist tatsächlich eine andere Geschichte als bloß über foo. Seltsame Sache, ist aber so: alert(foo) gibt einen JavaScript-Fehler, wenn es foo nicht gibt. alert(window.foo) ergibt hingegen einfach undefined.

                Das Problem ist eher: if (window.foo) nicht vergleichbar mit typeof(foo) != "undefined", weil window.foo in dem Fall durchaus definiert sein kann mit den Werten null, false, String("") oder Number(0), die if-Abfrage aber nicht greift. Da muss man schon genauer prüfen.

                Mathias

      2. Hallo,

        typeof sollte das können.

        Alternativ kann man dies auch direkt abfragen:

        if (foo != undefined) {

        // Code
        }

          
        Nee, das ist was ganz anderes.  
          
        Das Keyword undefined bedeutet, dass eine Variable mit einem var-Statement formal deklariert wurde, ohne ihr einen Wert zuzuweisen.  
          
        ~~~javascript
        var foo;  
        alert(foo == undefined);
        

        Äquivalent ist die Deklaration in einer Funktions-Parameterliste, ohne dass ein solcher Parameter übergeben wird:

        function func (foo) {  
          alert(foo == undefined);  
        }  
        func();
        

        In allen anderen Fällen kann man das undefined-Keyword vergessen.

        Einfach if (foo == undefined) führt zu einem JavaScript-Fehler, der das Programm abbricht (übrigens keine »Warnung«).

        Mathias