Javascript 为什么输出为2(且未定义)?
我正在学习JavaScript。我编写了一个简单的代码片段: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
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的链接,明白了。谢谢