Ich habe die folgenden Zeilen mit HTML geschrieben und einigen Inline JS:JavaScript-Laufzeitfehler: ‚Variable‘ ist nicht definiert, während Sie prüfen, ob nicht definiert
<% if (x !== undefined || x !== null) { %>
<div> Foo </div>
<% } %>
Es produziert diesen dynamischen Funktionscode:
if (x !== undefined || x !== null) {...
Neben dieser Fehler:
0x800a1391 - JavaScript runtime error: 'x' is undefined
Kann mir jemand erklären, warum dies geschieht?
prüfen 'typeof x == "undefined"' statt. – Sampson
Es passiert, weil ... 'x' nicht definiert ist. JS hat einige Schichten davon, aber die Fehlermeldungen sind nicht immer klar für die Unterscheidung 'var x' _declares_ eine Variable und ihre _value_ ist' undefiniert'. Sie werden es also nutzen können, weil sie sozusagen existieren. Nicht deklarierte Variablen tendieren dazu, Fehler zu verursachen, wie beispielsweise den, den Sie gesehen haben, weil Sie versuchen, auf etwas zuzugreifen, das nicht existiert (nicht deklariert). Obwohl "x = 5" wird implizit ein 'window.x' im nicht-strikten Modus gesetzt. – vlaz