解释 undefined 两点

作者:vkvi 来源:ITPOW(原创) 日期:2010-7-30

未赋值,就是 undefined

var v1;
var v2 = "v2";
v3 = "v3";
// v4; // 既没有使用 var,也没有为其赋值,出错。
alert(typeof v1); // undefined
alert(typeof v2); // string
alert(typeof v3); // string
alert(typeof v4); // undefined

v1、v4 的 typeof 是 undefined,他们的特点是:

  • v1 声明了,但没有赋值;
  • v4 既没有声明,也没有赋值;

划去相同的部分,也就是说只要没有赋值 typeof 就是 undefined。还有一种情况没说:var v1 = undefined;,这等效于 var v1,所以没说。

虽然均是 undefined,但使用有所不同

那么上面的 v1 和 v4 有没有其他区别呢,当然有了,这表现在使用上,v1 虽然未被定义,但可以使用,而 v4 是不能使用的。

var v1;
function foo(p)
{
}
foo(v1); // 运行正常
foo(v4); // v4 未定义错误
相关文章