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