javascript - 在重新声明未定义之前立即记录函数 block 内的全局变量 : Should not it take the Global Variable Value?

标签 javascript ecmascript-6

let pages =100;
let pageFunction=()=>{
 console.log(pages);
 const pages = "20";
 //console.log(pages);
}
pageFunction();

输出: Uncaught ReferenceError :页面未定义 在 F 页 (:3:13) 于:1:1

最佳答案

根据 Mozilla 的说法,“let 语句声明了一个 block 作用域局部变量,可以选择将其初始化为一个值。”另外,“在程序和函数的顶层,let 与 var 不同,不会在全局对象上创建属性。”

查看 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/let了解更多信息。

这意味着在您提供的代码中,您有效地创建了一个隐式全局变量pages,因为let pages并不是真正的全局变量,而是仅限于它所在的范围。

关于javascript - 在重新声明未定义之前立即记录函数 block 内的全局变量 : Should not it take the Global Variable Value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42849696/

相关文章:

javascript - 带有 ES2015 babel 预设的 Marionette 不起作用

Javascript 在本地工作但不在生产环境中工作

javascript - 禁用按钮,单击另一个按钮后启用按钮

javascript - 使用 REST 更新 SharePoint 文档库中的文件内容 - javascript

java - 将文件从 Javascript 传递到 Java Uploader Applet

javascript - 空检查对象不起作用

javascript - 使用全局安装的预设进行 Babelify 转换

JavaScript ES6 模块 + traceur

javascript - 如何使用 require js 将 jquery 库模块集成到 javascript 框架中

javascript - 没有 html 元素的 AngularJS ng-repeat