Javascript 为什么输出为2(且未定义)?

Javascript 为什么输出为2(且未定义)?,javascript,Javascript,我正在学习JavaScript。我编写了一个简单的代码片段: var a=5; var a=7; console.log(a); 这就产生了第7条,这是可以理解的。然而: var b=2; var b; //!=undefined? console.log(b); 产出2。我期望未定义,因为变量在初始化时被初始化为未定义。我错过了什么 谢谢 因为吊装。您的代码将由浏览器进行解释,如: var b; var b; b = 2; console.log(b); 有关详细信息:va

我正在学习JavaScript。我编写了一个简单的代码片段:

var a=5;
var a=7;

console.log(a);
这就产生了第7条,这是可以理解的。然而:

var b=2;
var b;    //!=undefined?

console.log(b);
产出2。我期望未定义,因为变量在初始化时被初始化为未定义。我错过了什么


谢谢

因为吊装。您的代码将由浏览器进行解释,如:

var b;
var b;

b = 2;

console.log(b);
有关详细信息:

var初始化被挂起,重复初始化被忽略。变量分配未被挂起。因此,对于解释器,您的第一个代码更像:

var a;
a = 5;
a = 7;
console.log(a);
您的第二个代码如下所示:

var b;
b = 2;

如果b之前已经声明为var,那么只有一个普通的var b实际上会被忽略。

请详细说明一下好吗?@RKarandikar添加了一个指向explanationAh的链接,明白了。谢谢