当两个同名变量提升时会发生什么?
What happens when two variables hoisting with the same name?
所以如果我像这样声明两个变量:
var a = 5;
var b = 10;
Javascript 编译代码,在赋值发生之前这些变量是 undefined
.
但如果我这样写:
var a = 5;
var a = 10;
当这些变量提升时会发生什么?它们都有名称 a
和
它们是 undefined
?或者它可能是一个变量并且 undefined
在其中写入了两次?
提升在这里并不重要。在同一范围内不能有两个同名的变量。就像你写 var a
一样,只有 一个 变量 a
,它的提升与你有一个 var a
没有什么不同。
此代码...
function() {
var a = 5;
var a = 10;
}
在功能上等同于此代码,a
提升:
function () {
var a;
a = 5;
a = 10;
}
所以如果我像这样声明两个变量:
var a = 5;
var b = 10;
Javascript 编译代码,在赋值发生之前这些变量是 undefined
.
但如果我这样写:
var a = 5;
var a = 10;
当这些变量提升时会发生什么?它们都有名称 a
和
它们是 undefined
?或者它可能是一个变量并且 undefined
在其中写入了两次?
提升在这里并不重要。在同一范围内不能有两个同名的变量。就像你写 var a
一样,只有 一个 变量 a
,它的提升与你有一个 var a
没有什么不同。
此代码...
function() {
var a = 5;
var a = 10;
}
在功能上等同于此代码,a
提升:
function () {
var a;
a = 5;
a = 10;
}