Следующий код работает в браузерах, но не в Node.js. Зачем?Nodejs - массивы на левой стороне
[a, b] = 'hey,there'.split(',');
console.log(a);
Следующий код работает в браузерах, но не в Node.js. Зачем?Nodejs - массивы на левой стороне
[a, b] = 'hey,there'.split(',');
console.log(a);
ES6 допускает что-то называемое деструктурирующими назначениями. (Красиво объяснено here. И вот ссылка на черновик spec.) Это то, что у вас есть в коде.
Похоже, что это ES6-функция, которую Firefox применяет раньше. (Возможно, слишком рано). К сожалению, это соответствует курсу с временем выполнения JavaScript. Многие из них дают доступ к функциям от предстоящих спецификаций раньше времени. Вы должны держать глаза очищенными, чтобы убедиться, что вы не используете то, что еще не было официально принято.
Ваш код рассматривается в ECMAscript 6. Это называется деструктуризацией массива. Вы можете увидеть его особенности здесь https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/1.7
ваш код будет работать на текущей версии Firefox (28), но не Google Chrome (33) вы можете проверить совместимость вас браузер с этого сайта http://kangax.github.io/es5-compat-table/es6/
Если вы хотите запустить его в Google-хроме, есть флаг с именем Enable Experimental JavaScript, появившийся в chrome: // flags ==> make this flag = true, тогда вы можете его запустить
NodeJs поддерживает ECMASript 6, но вы будете запускать используя следующую команду:
узел --harmony yourapp.js
Это не работает в Chrome 31. – Louis
Не работает в моем браузере, и он не должен работать в любом браузере, если это произойдет, это, вероятно, браузер делает что-то, чтобы попытаться исправить вашу глупую кодировку. – adeneo