【问题标题】:JS: Why value of "x" variable is undefined? [duplicate]JS:为什么“x”变量的值未定义? [复制]
【发布时间】:2018-04-11 16:59:53
【问题描述】:

为什么下面示例中的x 变量返回undefined 而不是25?

var x = 25;

(function() {
  console.log(x);
  var x = 10;
})();

【问题讨论】:

标签: javascript function hoisting


【解决方案1】:

这是javascript中hoisting的常见问题。代码实际上是这样的。在console.log之后赋值。

第二个未定义(如果在开发者工具上运行)是因为该函数没有显式返回任何内容

由于var 提升,这就是 Javascript 实际执行代码的方式:

var x = 25;

(function() {
  var x;
  console.log(x);
  x = 10;
})();

【讨论】:

    【解决方案2】:

    Self-Invoking Functions 将在不从特定函数或位置调用的情况下调用。并且您在该函数中声明的x 并准备运行该函数使javascript 忽略全局变量x 并尝试创建本地x。如果您从内部函数中删除var x = 10;,那么一切都会好起来的:

    var x = 25;
    
    (function() {
      console.log(x);
    })();

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      相关资源
      最近更新 更多