Ответ 1
Я не думаю, что Node поддерживает let
, но вы можете это сделать:
var a = 5;
(function () {
var a = 6;
console.log(a); // => 6
})();
console.log(a); // => 5
Поддерживает ли node.js оператор let что-то вроде описанного в MDN??
var x = 8,
y = 12;
let ( x = 5, y = 10) {
return x + y;
} //15
Если нет, есть ли способ дублировать функциональность с помощью самопроизвольной анонимной функции или что-то еще?
И/или есть другая среда js, которая
let
иИЗМЕНИТЬ
Этот вопрос задавали довольно давно. На данный момент, в конце 2015 года, ответ "Да, да, это так". Функции Harmony были включены по умолчанию в io.js 3.3 и недавно были возвращены в node.js с выпуском 4.x.
Я не думаю, что Node поддерживает let
, но вы можете это сделать:
var a = 5;
(function () {
var a = 6;
console.log(a); // => 6
})();
console.log(a); // => 5
Да, вы можете использовать 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
Я бы не рекомендовал использовать это в важном производственном приложении, но теперь функциональность доступна.
Это старый вопрос, и принятый ответ больше не правильный.
Поддержка let
была добавлена в Node.js 4.x.
См. здесь для полной версии поддерживающей матрицы.
node --use_strict --harmony_scoping
Вы можете использовать транспилер 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