39

node.jsは、MDNで説明されているようなletステートメントをサポートしていますか?

var x = 8,
    y = 12;

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

そうでない場合は、自己実行型の無名関数などで機能を複製する方法はありますか?

および/または別のjs環境があります

  1. 持っているlet
  2. ノードがそうであるように、REPLを持っていますか?Rhino?

編集

この質問はかなり前に尋ねられました。今のところ、2015年後半、答えは「はい、そうです」です。ハーモニー機能はデフォルトでio.js3.3に含まれていましたが、最近4.xリリースでnode.jsに戻されました。

4

5 に答える 5

84

はい、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

重要な本番アプリケーションでこれを使用することはお勧めしませんが、この機能は現在利用可能です。

于 2012-07-04T09:53:09.930 に答える
33

これは古い質問であり、受け入れられた回答はもはや正しくありません。

letNode.js 4.xでサポートが追加されました。

完全なバージョンのサポート マトリックスについては、こちらを参照してください。

于 2016-06-26T01:23:17.853 に答える
20
node --use_strict --harmony_scoping
于 2014-11-24T12:12:51.640 に答える
7

Node が をサポートしているとは思いませんletが、これを行うことができます:

var a = 5;

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

console.log(a); // => 5
于 2012-07-01T16:23:25.687 に答える
1

Babel トランスパイラーを使用letして、他の多くの ES6/ES2015 機能と同様に使用できます。

バベルを使用するには:

$ npm install --save-dev babel

次に、あなたのpackage.json

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

内部index.js:

let foo  = 'bar;

次に、サーバーを起動します。

$ npm start
于 2015-09-01T06:02:15.580 に答える