4
typeof value === "undefined"
和value === undefined
之間有區別嗎?JavaScript:測試未定義值的變量;測試物體是否是陣列爲什麼JavaScript在ECMAScript 5中需要
Array.isArray()
?我不能撥打value instanceof Array
來確定一個給定的變量是否是一個數組?
typeof value === "undefined"
和value === undefined
之間有區別嗎?JavaScript:測試未定義值的變量;測試物體是否是陣列
爲什麼JavaScript在ECMAScript 5中需要Array.isArray()
?我不能撥打value instanceof Array
來確定一個給定的變量是否是一個數組?
//var value; There is no var declaration. The variable was never declared
// check againts undeclared variables
typeof value === "undefined"; // works
// check againts declared variables with no value
value === undefined; // ReferenceError: value is not defined
也有與undefined = true
是有效的問題。但你並不關心這一點。這些天沒有人足夠愚蠢地改變undefined
。
我也知道instanceof
被破壞的錯誤。我不能給你Array.isArray
更好的確切原因。
如果你讀this Article它提到如何instanceof
不會在單獨的幀/窗/ iframe的工作,你會發現在JavaScript Garden
上instanceof
批評。
因爲instanceof會再次檢查Array
並且每個窗口都有自己的window.Array
。
謝謝!我剛試過'var foo; (foo === undefined);'在我的FF4 JS控制檯中沒有得到引用錯誤。是什麼賦予了? – FoobarMaximus 2011-05-15 02:45:43
@FooBarMaximus如果你刪除'var foo',你會得到一個引用錯誤;)'typeof'在沒有var聲明的情況下工作。 – Raynos 2011-05-15 02:51:19