node.js是否支持'let'语句?

时间:2012-07-01 16:06:44

标签: javascript node.js

node.js是否支持let语句,类似于described on MDN?

var x = 8,
    y = 12;

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

如果没有,有没有办法用自动执行的匿名函数复制功能?

和/或是否有另一个js环境

  1. let
  2. 有一个REPL,就像节点一样?犀牛?
  3. 修改

    很久以前就提出了这个问题。截至目前,2015年底,答案是“是的,是的确如此”。默认情况下,和声功能包含在io.js 3.3中,并且最近使用4.x版本返回到node.js。

5 个答案:

答案 0 :(得分:85)

是的,您可以在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

我不建议在重要的生产应用程序中使用它,但现在可以使用该功能。

答案 1 :(得分:28)

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

在Node.js 4.x 中添加了

let支持。

有关完整版支持矩阵,请参阅here

答案 2 :(得分:20)

node --use_strict --harmony_scoping

答案 3 :(得分:6)

我认为Node不支持let,但您可以这样做:

var a = 5;

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

console.log(a); // => 5

答案 4 :(得分:1)

您可以使用Babel转发器并使用let以及许多其他ES6 / ES2015功能。

使用babel:

$ npm install --save-dev babel

然后在package.json

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

内部index.js

let foo  = 'bar;

然后启动服务器:

$ npm start