Jedes Mal , wenn jemand erwähnt die Prüfung gegen undefined
, es ist darauf hingewiesen , dass undefined
kein Schlüsselwort ist , so kann es eingestellt werden"hello"
, so dass Sie verwenden sollen typeof x == "undefined"
, statt. Das kommt mir lächerlich vor. Niemand würde das jemals tun, und wenn sie es tun würden, wäre es Grund genug, niemals einen Code zu verwenden, den sie geschrieben haben ... richtig?
Ich fand ein Beispiel von jemandem, der aus Versehen gesetzt undefined
zu null
, und dies wurde als Grund gegeben zu vermeiden , unter der Annahme , dass undefined
nicht überschrieben wird. Aber wenn sie das getan hätten, wäre der Fehler unentdeckt geblieben, und ich sehe nicht, wie das besser ist.
In C ++ ist sich jeder bewusst, dass es legal ist zu sagen #define true false
, aber niemand rät Ihnen jemals, es zu vermeiden true
und 0 == 0
stattdessen zu verwenden. Sie gehen einfach davon aus, dass niemand jemals groß genug sein würde, um das zu tun, und wenn doch, vertrauen Sie ihrem Code nie wieder.
Hat dies jemals jemanden gebissen, dem jemand anderes undefined
(absichtlich) zugewiesen wurde, und es hat Ihren Code gebrochen, oder ist dies eher eine hypothetische Bedrohung? Ich bin bereit, mein Risiko einzugehen, um meinen Code geringfügig lesbarer zu machen. Ist das eine wirklich schlechte Idee?
Um es noch einmal zu wiederholen, ich frage nicht , wie ich mich vor neu zugewiesenen undefinierten schützen soll. Ich habe diese Tricks schon 100 Mal geschrieben. Ich frage, wie gefährlich es ist, diese Tricks nicht anzuwenden.
undefined
, sollten Sie mehr über jemanden Neudefinition kümmern XMLHttpRequest
, oder alert
. Alle Funktionen, die wir verwenden, window
könnten neu definiert worden sein. Und wenn Sie sich nur Sorgen machen, dass ein Mitarbeiter dies versehentlich tut, warum sollten Sie ihm dann vertrauen, dass er es nicht tut window.addEventListener = "coolbeans"
? Die Antwort ist, sich darüber keine Sorgen zu machen. Wenn jemand böswillig JS in Ihre Seite injiziert, werden Sie trotzdem abgespritzt. Die Arbeiten an verhindern , dass aus geschieht in erster Linie.