如何理解此代码(关于javascript'var')

How to understand this code(about javascript 'var')

本文关键字:var javascript 关于 何理解 代码      更新时间:2024-03-12

"var"在JavaScript中做什么?

(function (a) {
  var a;
  console.log(a); // why output 1?
})(1)
正如RJM所说,它在本地作用域中声明了一个变量。更具体地说,对于您似乎遇到的困惑,它输出1,因为您通过传入1立即调用该函数。它被设置为变量a。在已经有效地设置了a之后调用var a;没有任何作用。

为了给该语句提供更多的上下文,javascript中的变量声明被提升到作用域的顶部。在MDN上阅读更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var#var_hoisting

它在本地作用域中声明一个变量。

var在函数范围内定义一个新变量,则不能在函数上下文外访问a

您可以查看"关闭"以了解更多信息。

我希望这有帮助:D

在提供的代码中,您正在运行一个自执行的匿名函数。

(function(){
  //Code goes here
})();

前面括号中定义的任何内容都将立即执行。在匿名函数外部定义的变量和函数无法访问内部定义的所有内容。

您正在将整数1传递给定义为var a的自执行。

(function (a) {
  var a;
  console.log(a); // why output 1?
})(1)

它将A设置为变量,并自动将其设置为布尔值"true"。