未赋值,就是 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 未定义错误