【发布时间】:2017-03-27 21:10:50
【问题描述】:
我在 chrome 开发者控制台中编写了一些随机代码。令我惊讶的是,chrome 让我使用 let 作为变量名,这是完全错误的,因为 let 是保留关键字。我需要了解为什么会这样。
场景:
var const = 78 //throws an error as expected
var function = 46 //throws an error as expected
var let = 56 //didn't throw an error :O
let //prints 56, which is wrong because 'let' is a keyword
let ab = 90
ab //prints 90 as expected
node 中存在此缺陷。但是,当我在 Babel REPL 中尝试它时,它会抛出一个错误。
我认为这与 Google v8 有关
【问题讨论】:
-
为什么不避免使用可能的保留字呢?有“不使用”字的列表和官方的“保留字”
-
不确定是否可以作为答案发布,但我认为这是为了防止旧代码被破坏。如果 ES2015 之前的应用程序使用了一个名为 'let' 的变量怎么办?
-
我明白了。如果有官方的“保留词”列表,为什么v8不遵循它。我希望它会引发错误。
-
@PraneshRavi 你也可以
var undefined = 10 -
@JoeClay 我一直使用 eslint:P。我只是想知道这背后的原因。感谢您的回答。
标签: javascript node.js google-chrome ecmascript-6 v8