有时,当Node看到这样的代码时,我会看到它:
if (true) {
const z = 'foo';
} else {
const z = 'bar';
}
Node说z已经声明为常量。但是既然这是一个if-否则,Node到底在什么时候看到了这两个声明?Node中的eval操作是否以某种方式捕捉到了这一点?
发布于 2016-06-02 11:06:36
节点4和5对const
的支持不完全。缺少的特性之一是支持严格模式之外的块范围。
发布于 2016-06-02 11:05:53
在Node v6之前,他们实现了规范的早期草案,其中const
变量是块作用域。在相同的范围内以相同的名称声明两个const变量会导致错误,但是在循环中声明const变量的行为很奇怪:常量从第一个赋值中获得值。任何进一步的转让都没有效果。
for (var i = 0; i < 3; i++) {
const j = i;
console.log(j)l // prints 0 all three times in node 5.x
}
https://stackoverflow.com/questions/37599774
复制相似问题