节点.js是否支持“let”语句

Does node.js support the 'let' statement?

本文关键字:let 语句 支持 js 是否 节点      更新时间:2023-09-26

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

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

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

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

  1. let
  2. 像节点一样有 REPL?犀?

编辑

这个问题很久以前就被问过了。截至目前,2015年底,答案是"是的,是的"。Harmony 功能默认包含在 io.js 3.3 中,最近在 4.x 版本中又回到了 node.js。

是的,你可以在 node.js 中使用 let,但是你必须使用可选的 --harmony 标志来运行 node。请尝试以下测试.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

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

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

let Node.js 4.x 中添加了支持。

有关完整版本支持矩阵,请参阅此处。

node --use_strict --harmony_scoping

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

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

您可以使用 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