因此,如果我这样声明两个变量:
var a = 5;
var b = 10;
Javascript编译代码,直到分配发生,这些变量均为undefined
。
但是如果我这样写:
var a = 5;
var a = 10;
这些变量吊起时会发生什么?它们都具有名称a
和
它们是undefined
?还是它是一个变量,而undefined
被写了两次?
答案 0 :(得分:1)
在这里起吊并不是很重要。在同一范围内,不能有两个具有相同名称的变量。在您编写var a
的过程中,只有一个一个变量a
,它的悬挂与您只有一个var a
时的悬挂没有什么不同。
此代码...
function() {
var a = 5;
var a = 10;
}
在功能上等效于此代码,并悬挂了a
:
function () {
var a;
a = 5;
a = 10;
}