2013-04-22 11 views
9

未定義は、グローバルウィンドウのプロパティ/であると思われます。定義されていないのは、window/globalのプロパティですか?私はいつも<strong>未定義</strong>が<strong>ヌル</strong>、JavaScriptでuniqe値のように、であると考え</p> <p><img src="https://i.stack.imgur.com/WBMku.jpg" alt="enter image description here"></p> <p>:

しかし、上記のコード(はChromeでテスト済み)はわかりません。

null in window 

が偽

+0

関連:/ questions/776950/javascript-undefined-undefined –

答えて

12

だけでなくundefinedでなく、Infinityに評価し、NaNながら、いくつかはで、global objectの値であり、真の理由

undefined in window 

evaluteを説明することができますこの場合、windowES5.1 specification以降)。

undefinedに値を割り当てることができないという事実は、プロパティがwritableattributeに設定されているため、falseに設定されているためです。

nulltypeNull5ためNumberように)、ないwindowの性質のprimitive value5のように)です。

詳細についてはannotated ES5 specificationをご覧ください。

+2

実際には、ES5の前に 'undefined'を割り当てることができます。あなたはできるはずはありません。実際、jQueryには誰もが定義されていないものを割り当てる場合に、実際の値を未定義にするコードがあります。 – slebetman

+1

'undefined'値があります。これは' window.undefined'プロパティの値として使用されます( 'undefined'と指定されていますが、いくつかの実装では再割り当て可能です)。 'undefined'値を得るための非常に信頼できる方法は、' void 0'、 '(function(){}())'、 'var undef;'です。モジュールパターンのスコープ内で使われる 'var undef = void 0; 'をお勧めします。 – Keen