Wie im Thema JS erwähnt, scheint der gute Teil zu behaupten, dass ein Eigenschaftswert nicht undefiniert sein kann. Allerdings, wenn Sie die folgende in Chrome Konsole zum Beispiel tun:Warum behauptet "Javascript die guten Teile", dass "ein Eigenschaftswert irgendein Javascript-Wert sein kann, außer für undefined"?
var foo = {}
foo.bar = undefined
foo
Klicken Sie dann auf das foo-Objekt erweitern können Sie immer noch sehen, dass foo eine Eigenschaft enthalten, die mit dem Wert genannt bar nicht definiert. Natürlich kann man von der Javascript-Seite aus den Unterschied zwischen foo.bar nicht undefined und foo.unexistingproperty nicht undefiniert erkennen. Aber was ist der Sinn der Konsole, die immer noch an der Eigenschaft festhält, die auf undefiniert gesetzt wurde?
Ich denke, Sie könnten es ein ziemlich nutzloses Chrome "Feature" nennen :) – sje397
@ sje397: Nicht nutzlos. Es besteht ein Unterschied zwischen einer bestehenden und nicht definierten Eigenschaft und einer nicht vorhandenen Eigenschaft. Siehe meine Antwort. –
So wie viele Antworten sagte ich weiß, dass Sie löschen können, um die Eigenschaft loszuwerden und so weiter. Aber die Hauptidee mit meiner Frage war, warum das Buch behauptet, dass der Wert nicht undefiniert sein kann. Offensichtlich scheint dies eine falsche Aussage von Crockford zu sein. – Sam