Ich habe einige Gedanken darüber gegeben, eine Variable namens undefined
zu deklarieren und einen truthy if-else Ausdruck damit auszuwerten. Ich habe herausgefunden, dass dies im globalen Rahmen nicht möglich ist. Aber in MDN habe ich einige interessante Erkenntnisse über den undefined
Datentyp gefunden. Ich ziehe direkt aus MDNundefiniert als gültiger Variablenname im lokalen Gültigkeitsbereich
undefined ist eine Eigenschaft des globalen Objekts; h. es ist eine Variable im globalen Gültigkeitsbereich.
Es sagt nichts über lokalen Bereich. Das heißt, ich kann einen im lokalen Bereich erstellen. Also gehe ich weiter, um diese Einsicht zu testen. Ich habe ein Objekt, und weisen ein Verfahren, um es erstellt
var person = {
method : function(){
var undefined = 2
if(undefined){
console.log("undefined works as a variable")
}
}
}
person.method()
Und erraten, was! Die if-Anweisung besteht den Test und die Zeichenfolge innerhalb der console.log()
wird auf der Konsole gedruckt. Dies könnte eine gefährliche Sache und natürlich eine schlechte Praxis sein. Gibt es eine Möglichkeit, die Deklaration einer Variablen, die nach undefined
Schlüsselwort in lokalem JavaScript-Bereich benannt ist, zu verhindern? Vielen Dank!
Mögliche Duplikat [var undefiniert = true;] (https://stackoverflow.com/questions/2534260/var-undefined-true) –
@ nem035 wird –
nicht funktionieren * "Gibt es eine Möglichkeit zu verhindern, die Deklaration einer Variablen, die nach dem Schlüsselwort 'undefined' im lokalen Bereich von Javascript benannt ist? "* Warum genau fragen Sie? Was ist dein ultimatives Ziel? Möchten Sie verhindern, dass Sie eine solche Variable erstellen? Wer sonst schreibt Code "im lokalen Bereich", wenn nicht Sie selbst? –