JS:为什么 "x" 变量的值未定义?

JS: Why value of "x" variable is undefined?

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

var x = 25;

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

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

第二个未定义(如果 运行 在开发者工具上)是因为函数没有明确返回任何东西

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

var x = 25;

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

它是 Self-Invoking Functions 将在不从特定函数或位置调用的情况下调用。并且您在该函数内声明的 x 并准备 运行 该函数使 javascript 忽略全局变量 x 并尝试创建本地 x。如果您删除 var x = 10; 从里面的函数就可以了:

var x = 25;

(function() {
  console.log(x);
})();