Несмотря на то, что работа над спецификацией JavaScript 2.0 еще не закончена, обзор новых возможностей уже доступен в
формате PDF. Разработчики надеются закончить спецификацию этой осенью.
Итак, некоторые вещи, которые будут нам доступны:
ООПНаконец-то:
/* Создание псевдо-класса в JavaScript 1.x */
function Foo() {
this.a = "a";
this.b = "b";
}
var myFoo = new Foo();
/* Создание класса в JavaScript 2.0 */
class Bar {
this.a = "a";
this.b = "b";
}
var myBar = new Bar(); // class instantiation
Проверка типов во время компиляции:
Компоненты JavaScript 2.0 могут потребовать быть откомпилированными в так называемом strict mode. Это дает много преимуществ, например:
- Проверка статических типов
- Проверка существования упоминаемых имен
- Сравнение двух переменных одного и того же типа
- Запрет присвоения новых значений константам
Мы сказали константы?:
/* Константы в JavaScript 1.x */
var FOO = `bar`; // смотри, я весь в верхнем регистре, так что пожалуйста, не меняй меня
/* Константы в JavaScript 2.0 */
const FOO = `bar`; // попробуй, поменяй!
Переопределение операторов:
Теперь можно будет делать и много очень хороших, и немало очень плохих вещей. Операторы теперь работают так, как вы захотите.
Настоящие пространства имен:
В JavaScript 1.0 можно было эмулировать namespaces запихиванием разных вещей в глобальный обьект. Несмотря на то, что это не очень плохая практика, это не совсем правильное использование обьектов. Теперь для пространств имен будет свой отдельный синтаксис.
Загружаемые модули:
Создание отдельных модулей, которые не будут загружены пока не потребуются. У этого есть большой потенциал, помимо оптимизации траффика. Более серьезный плюс в том, что это шаг вперед к созданию структурированного, готового к повторному использованию кода библиотек.
use unit Person "http://mysite/library/classes/Person";
use unit DisplayUtil "http://mysite/library/utils/DisplayUtil";
var bob = new Person();
document.writeln(DisplayUtil.display(bob));
Заключение:
В текущей версии спецификации 40 страниц, там есть еще много вкусных вещей - если вас не затруднит чтение на английском. В целом JavaScript 2.0 обещает быть замечательным улучшением для всего интернета.