如果两个变量具有相同的名称,会发生什么情况?

时间:2019-06-26 14:06:30

标签: javascript hoisting

因此,如果我这样声明两个变量:

var a = 5;
var b = 10;

Javascript编译代码,直到分配发生,这些变量均为undefined

但是如果我这样写:

var a = 5;
var a = 10;

这些变量吊起时会发生什么?它们都具有名称a和 它们是undefined?还是它是一个变量,而undefined被写了两次?

1 个答案:

答案 0 :(得分:1)

在这里起吊并不是很重要。在同一范围内,不能有两个具有相同名称的变量。在您编写var a的过程中,只有一个一个变量a,它的悬挂与您只有一个var a时的悬挂没有什么不同。

此代码...

function() {
  var a = 5;
  var a = 10;
}

在功能上等效于此代码,并悬挂了a

function () {
  var a;
  a = 5;
  a = 10;
}