任何人都可以在他们的Node.js REPL中使用let语句吗?
可能吗? 在我的REPL中,似乎没有工作,没有--harmony
也没有。
我真的想做的是使用for..of循环,但似乎更简单的事情排除故障,可能是相同的原因。
任何人都知道这些的状态?
$ node --version v0.10.13
这有点神秘,你会认为只有--harmony
才会起作用,但是你需要在某个地方加一个use strict
的use strict
(你可以在命令行中这样做):
$ node --harmony --use-strict > var letTest = function () { ... let x = 31; ... if (true) { ..... let x = 71; // different variable ..... console.log(x); // 71 ..... } ... console.log(x); // 31 ... } undefined > letTest() 71 31 undefined >
非常高兴!
但是,我尝试了一个简单of
理解,它没有工作:
[ square(x) for (x of [1,2,3,4,5]) ]
没有运气。 看起来你可能不得不通过目前的稳定版本来获得所有的和谐特征。
如果你从一个文件运行它,node.js会告诉你这个错误:
SyntaxError: Illegal let declaration outside extended mode
其细节在另一个问题给出什么是扩展模式? 正因为如此,扩展模式是build立在严格的模式,所以你不能使用它没有"use strict"
和谐标志。 我从这里引用的原因是:
回想一下,ES5定义了“严格模式”,JS的一种新的执行模式。 我们称另一种模式为“经典模式”。 ES6定义了第三种“扩展模式”,它build立在严格模式之上,并启用新function。
最近的节点v11.7有迭代器,允许你使用循环。 我使用的例子是:
function* fibonacci() { let prev = 0, curr = 1, temp; for (;;) { temp = prev; prev = curr; curr = temp + curr; yield curr; } } for (let n of fibonacci()) { if (n > 1000) break; console.log(n); }
现在,我只能for of
迭代器而不是简单的数组。