好的,我的问题很简单:在 JavaScript / ES6
当你有类似的事情时会发生什么
x = 5;
console.log(x); // 5
Run Code Online (Sandbox Code Playgroud)
解释器是在运行时自动添加“let”还是为什么它可以正常工作而没有错误?
编辑:严格模式 ES5 的语法允许称为隐式全局变量的东西,这是许多令人沮丧的编程错误的根源。简而言之,如果你忘记用 var 声明一个变量,JavaScript 会很高兴地假设你指的是一个全局变量。如果不存在这样的全局变量,它会创建一个!你可以想象这造成的问题。
我知道了。感谢您的所有评论。我现在明白为什么会这样了。谢谢!
小智 6
通过省略let、const或var在非严格模式下,您可以在全局对象上创建一个属性。
顺便说一下,默认情况下babel会添加"use strict";。所以你会得到一个错误babel。
你可以在这里尝试:https : //babeljs.io/repl/
| 归档时间: |
|
| 查看次数: |
4327 次 |
| 最近记录: |