我正在学习JavaScript。我写了一个简单的代码片段:
var a=5;
var a=7;
console.log(a);
这将输出7
,这是可以理解的。但是:
var b=2;
var b; //!=undefined?
console.log(b);
输出2
。我期待undefined
,因为变量在初始化时被初始化为undefined
。我想念什么?
谢谢!
答案 0 :(得分:5)
由于吊装。您的代码将被浏览器解释,例如:
var b;
var b;
b = 2;
console.log(b);
答案 1 :(得分:1)
var
初始化被初始化 ,并且重复的初始化将被忽略。变量分配未吊起。因此,对于解释器来说,您的第一个代码看起来更像:
var a;
a = 5;
a = 7;
console.log(a);
第二个代码如下:
var b;
b = 2;
如果b
之前已被声明为var
,则仅忽略一个简单的“ var b”。