javascript - 什么在函数中创建函数?

标签 javascript

为什么下面代码的结果是 1 而不是 10?为什么函数 bar() 不更改值,即使有 return 语句。

var foo = 1;
function bar() {
  foo = 10;
  return;

  function foo() {}
}

bar();
alert(foo);

最佳答案

这是因为 function 定义被提升到它们作用域的顶部,所以 bar() 中的 foo 赋值实际上指的是具有空值的局部函数 body 。

您可以阅读更多相关信息 here

关于javascript - 什么在函数中创建函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40203333/

相关文章:

javascript - 使用 AJAX (XMLHttpRequest) 查询维基百科的 API

javascript - 使用嵌套 open() 函数时何时退出?

javascript - 具有条件逻辑的 JQuery .css() 函数

javascript - 创建 javascript 对象时遇到问题

javascript - 如何解决node.js中阻塞对一个URI的请求的问题?

javascript - 如果我们在声明变量之前对其进行控制台会怎样

javascript - 轻松升级 Ckeditor

javascript - 动态添加脚本到某些页面

javascript - 如何在 JS 应用程序中创建 onReady promise

javascript - node.js 中的错误处理