为什么在全局声明中未定义变量?

帕拉维·沙玛(Pallavi Sharma)

我只是显示警报中的值,但我a不确定是为什么?我将解释问题:

首先,我使用false参数调用函数,并使用来显示警报a = 1;但是当我true作为参数传递时,它首先显示警报2(如预期的那样是本地的),但是何时再次显示2第三说一个是undefined

function ab(p){
    a = 1;
    if(p){
        var a = 2
        alert(a)
    }
    alert(a)
}

ab(false);
alert(a);

出乎意料的结果是什么时候ab(true)

Balachandran

这就是所谓的可变吊装。实际上,您认为是全局变量的变量将在该函数内部悬挂,并将变为局部变量。

编译器会这样考虑您的代码,

function ab(p){
  var a;  //will be hoisted here.
  a=1;
  if(p){
     a=2;
     alert(a);
  }
  alert(a);
 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在ComponentWillMount中声明的变量未定义?

为什么全局对象中的变量未定义,即使它尚未定义?

为什么即使声明了全局变量,Javascript代码也会显示“未定义”?

为什么未定义全局变量?

在 JavaScript 中,为什么这个全局变量在我的函数中未定义?

为什么简写定义的变量在React中未定义

为什么 js 中的提升变量显示未定义

为什么我的变量在javascript中返回未定义?

为什么在闭包 Laravel 中未定义变量?

为什么我的事件变量在输入中未定义?

为什么我的变量在 init 中未定义?

为什么变量在$ {document).keypress中变得未定义?

为什么在Python中未定义此变量?

为什么在 nodejs express 中未定义变量

为什么我的变量在 javascript 中未定义?

为什么未定义变量?

为什么变量未定义?

为什么未定义变量?

为什么在使用 Google Maps API 时全局设置的 JS 变量显示为未定义?

聚合物键全局变量未定义。为什么?

为什么全局变量值显示为未定义?

为什么Scala不能声明但未定义的变量,而Java却可以呢?

为什么我的类构造变量在声明后保持未定义?

为什么我的代码中已明确定义了未定义的变量,为什么呢?

未定义变量:声明

为什么在方法中未定义变量但在Typescript的构造函数中未定义变量

为什么读取未声明的变量会给出引用错误,但未声明的对象属性会在javascript中返回未定义?

NameError:名称未定义全局声明

为什么我的JavaScript提升的局部变量返回未定义,而提升的全局变量返回空白?