Подтвердить что ты не робот

Поддерживает ли node.js оператор let?

Поддерживает ли node.js оператор let что-то вроде описанного в MDN??

var x = 8,
    y = 12;

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

Если нет, есть ли способ дублировать функциональность с помощью самопроизвольной анонимной функции или что-то еще?

И/или есть другая среда js, которая

  • имеет let и
  • имеет REPL, как это делает node? Rhino?

ИЗМЕНИТЬ

Этот вопрос задавали довольно давно. На данный момент, в конце 2015 года, ответ "Да, да, это так". Функции Harmony были включены по умолчанию в io.js 3.3 и недавно были возвращены в node.js с выпуском 4.x.

4b9b3361

Ответ 1

Я не думаю, что Node поддерживает let, но вы можете это сделать:

var a = 5;

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

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

Ответ 2

Да, вы можете использовать let внутри node.js, однако вам нужно запустить node, используя дополнительный флаг --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

Я бы не рекомендовал использовать это в важном производственном приложении, но теперь функциональность доступна.

Ответ 3

Это старый вопрос, и принятый ответ больше не правильный.

Поддержка

let была добавлена ​​в Node.js 4.x.

См. здесь для полной версии поддерживающей матрицы.

Ответ 4

node --use_strict --harmony_scoping

Ответ 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