javascript - 为什么 JavaScript 在函数实际调用之前声明局部变量?

标签 javascript scope

简单的例子:

var b = function (msg) {
   (function inn() {
       console.log(msg);
       var msg = 0; 
   })();
} b("15");

此代码将记录“未定义”,因为第 4 行上的本地“msg”是在该行实际执行之前声明的。文档中有关于此的任何要点吗?

最佳答案

这称为变量提升。

Here is the documentation on it

关于javascript - 为什么 JavaScript 在函数实际调用之前声明局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17701261/

相关文章:

javascript - 遍历嵌套的对象数组,呈现不同的标记

javascript - 闭包行为不一致的 javascript 对象中的 "this"

AngularJS - 修改 iframe DOM

javascript - 为什么这两段代码返回不同的值?

java - 访问另一个类的数组变量

javascript - 将分数字符串转换为小数?

javascript - 如何在 toastr 中显示确认对话框

javascript - 延迟 React onMouseOver 事件

javascript - 带有 png 图像的 Bootstrap 切换按钮附加组件

javascript - ASP.Net MVC 中的 Excel 文件