Antje Hofmann: Fehlermeldungen im Allgemeinen...

Beitrag lesen

Heisst das jetzt etwa, dass (self.y) doch in erster Linie die Existenz abfragt und nicht den Wert? Weitere Versuche ergeben: Auch wenn man y deklariert und mit 0 initialisiert, kommt die 'Nein'-Meldung. Erst bei y=1 gibt es 'Ja'. Fragt man nur (y) ab, bekommt man die Fehlermeldung ("y is not defined."), wie Du schon gesagt hast. Auch hier natuerlich erst die 'Ja'-Meldung, wenn y=1 (oder besser: y!=0).

Interessant, wie ich finde. Vielleicht kann ja mal jemand irgendeine Spec raussuchen, wo das beschrieben ist? Ich koennte mir auch vorstellen, dass das bei verschiedenen Browsern anders laeuft. Meiner ist Netscape 4.08 en.

Calocybe

Hallo Calocybe

ich habe noch etwas experimentiert und hier und da nachgelesen und mir folgendes zusammengereimt.

Mit window oder self spricht man ja das Objekt Window an und die Frage nach self.y ist also eine Frage nach der Eigenschaft (?) y des Objektes. Gibt es diese Eigenschaft, dann wird mit ja sonst mit nein geantwortet. Im Grunde machen wir ja mit if (document.all) genau das gleiche.

Die Null ließ mir auch keine Ruhe. Das Ergebnis ist im IE 4/5 und Navi 4.06/4.5 wie bei dir.
Ich fand aber eine Notiz im Mintert, allerdings im Zusammenhang parseInt() und parseFloat() das diese Funktionen im Navigator 2 im Fehlerfall 0 als Wert lieferten, der nicht als Zahl interpretiert wird und zwar nur unter dem Betriebssystem Windows.

Vielleicht liegt hier der Fall vor, das Null einfach nicht als Zahl angesehen wird, sondern als Kennzeichen für ein nichtexistierendes Element? Ausgeben läßt sich die Null ja, auch wenn stur der Nein-Fall gewählt wird. Vielleicht weil hier direkt der Wert gelesen wird? if (y==0) erzeugt übrigens den ja-Zweig.

Ich vermute mal if (y) fragt nur nach der Existenz also sucht einen Zeiger auf y und if (y==0) sucht den Zeiger und liest den Wert von y.

Wäre interessant zu erfahren, wie es bei anderen Betriebssystemen aussieht mit der 0.

Viele Grüße

Antje