【发布时间】:2017-08-15 14:35:15
【问题描述】:
我发现这行代码有效:
for(let in [0,1,2]) {console.log('wtfjs');}
但不是这些:
for(var in [0,1,2]) {console.log('js');}
for(const in [0,1,2]) {console.log('js');}
(在 Chrome、Firefox 甚至 Edge 上试试!)
我对此感到非常困惑。
找到另一个
for(let of [0,1,2]) {console.log(let);}
为什么这不起作用?
【问题讨论】:
-
答案一定隐藏在specs的某处,但我找不到
-
@UlysseBN Section 11.6.2.1。 “
let和static通过静态语义限制而不是词汇语法被视为保留关键字。”换句话说,let和static是上下文关键字。它们是关键字或变量名,具体取决于上下文。 -
我明白为什么
let in []有效。但是为什么let of []不...?知道这在现实世界的代码中是没有用的,我真的很好奇。
标签: javascript