node.js是否支持“let”语句?

node.js是否支持类似于MDN上描述的let语句? ?

var x = 8, y = 12; let ( x = 5, y = 10) { return x + y; } //15 

如果没有,有没有办法用自动执行的匿名函数或其他东西来复制function?

和/或有另一个JS环境

  1. 已经let和和
  2. 有节点的REPL吗? 犀牛?

编辑

这个问题在很久以前就被问到了。 截至目前,2015年底,答案是“是的,是的”。 在io.js 3.3中默认包含了和谐特性,并且最近被4.x版本带回到了node.js。

我不认为节点支持let ,但你可以这样做:

 var a = 5; (function () { var a = 6; console.log(a); // => 6 })(); console.log(a); // => 5 

是的,您可以在node.js中使用let,但是必须使用可选的–harmony标志来运行节点。 试试下面的test.js

 "use strict" var x = 8, y = 12; { let x = 5, y = 10; console.log(x + y); } console.log(x + y); 

然后运行文件node --harmony test.js ,导致:

 15 20 

我不build议在重要的生产应用程序中使用此function,但function现在可用。

这是一个古老的问题,接受的答案不再正确。

let支持被添加到Node.js 4.x中

看到这里的完整版本的支持matrix。

 node --use_strict --harmony_scoping 

您可以使用Babel transpiler,并使用let以及许多其他ES6 / ES2015function。

要使用babel:

 $ npm install --save-dev babel 

然后在你的package.json

 "scripts": { "start": "babel-node index.js" } 

index.js里面:

 let foo = 'bar; 

然后启动服务器:

 $ npm start