Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Объясните мне, в чём разница взгляда на спецификацию со стороны JavaScript-программиста и Java/C# программиста?
Может стоит написать ещё несколько обзоров с точки зрения Python / Ruby / Haskell программистов?
Хром, к примеру, не поддерживает большинство вещей из списка, если не включен флаг Enable Experimental JavaScript. Выход — использовать Traceur, компилятор из ES 6 в ES 5.
Ну и как-бы в 2014 ES6 API уже можно начинать использоватьЭто мнение автора или чем-то обоснованная позиция? Так как если вы посмотрите на traceur и его дату создания, то он существовал ещё с 2011 года (хоть и поддерживал далеко не всё), что позволяло ещё в тех годах использовать вышеописанные в статье фичи новой спецификации.
«Традиционное» наследование как в Java/C# можно так-же эмулировать через протопипную модель (код приводить не буду, чтобы не раздувать статью).
Теперь можно обменивать значения без временной переменной, что сокращает код.
var x = 1, y = 2
x = [y, y=x][0]
class Horse{
constructor(){this._speed = 5;}
get speed(){return this._speed}
}
class HorseWithTransmission extends Horse{
set speed(val){this._speed = val}
}
new HorseWithTransmission().speed //=> undefined
class Bicycle extends Vehicle {Сдались.
var name = 'nkt';
console.log(`Hello, ${name}!`); // Hello nkt
var name = 'nkt';
var options = {name}; // {name: name}
for-of, абстракции массивов / генераторов, аргументы функции по умолчанию, rest / spread, динамические ключи в литерале объекта, оптимизация хвостовой рекурсии, стандартная библиотека: Symbol, Proxy, Promise, Map, Set, WeakMap, WeakSet, не считая расширения уже имеющихся объектов.Так как изменений очень много, опишу субъективно самые важные.
Ecmascript 6 — что можно использовать уже сейчас