在js中阻止范围

时间:2017-01-12 11:55:42

标签: javascript scope

我正在玩aroun并找到了令人兴奋的事情

var x = "x";
function a (){
    var x = "y";
  if(1){
    var x = "g";
    alert(x);
  }
  alert(x)
}

a()

为什么这个输出" g" ," g"在" g" ," y" ? if创建另一个块作用域,x是局部变量,这意味着当我离开if块时,应该打印外部x(等于" y")。

1 个答案:

答案 0 :(得分:0)

原因是变量x具有功能级别范围,并且设置为变量的最新值是" g"。因此,您使用相同的x" g"。

提醒两次