Спецификация ECMAScript 5 официально одобрена в качестве ECMA стандарта на очередном собрании Генеральной Ассамблеи ECMA. Для утверждения стандарта требовалось получить положительные отзывы от 2/3 участников ассамблеи, в итоге заседания 19 участников проголосовали "за" и только 2 компании "против". Против проголосовали компании IBM и Intel: IBM так как в спецификацию не были включены пожелания, связанные с форматированием десятичных чисел, а компания Intel так как у нее не было времени до конца проанализировать возможные нарушения интеллектуальных прав на включенные в стандарт технологии.
На мероприятии также было одобрено применение ускоренной процедуры принятия ECMAScript 5 в качестве международного ISO стандарта. Для принятия международного стандарта по ускоренной схеме необходимо, чтобы 2/3 допущенных для голосования стран отдали положительные голоса за принятие стандарта, отрицательных голосов должно быть не более 1/4.
ECMAScript продолжает линейку стандартов, определяющих базовые функциональные возможности JavaScript, реализованные для всех web-браузеров. Прошлый стандарт JavaScript был принят в 1999 году, принятию нового стандарта мешали трудноразрешимые разногласия среди производителей браузеров: представители проектов Mozilla, Apple и Opera, выступали за внесение значительных изменений в JavaScript, таких как поддержка раннего связывания (early binding), пакетов (packages) и пространств имён (namespaces), в то время как Microsoft и Yahoo добивались сохранения полной семантической совместимости. К счастью, разработчикам удалось добиться разумного компромисса.
Основные новшества ECMAScript 5:
- геттеры и сеттеры(реализованы в Mozilla, Safari, Opera), конструкция let();
- поддержка определения формата кодирования JSON объектов;
- дополнительные функции управления массивами и атрибутами свойств;
- рефлективное создание и инспектирование объектов;
- метод Object.freeze() позволяет передавать объекты в виде, не поддающемся модификации, имитируя поведение классов, а сами классы являются надстройкой ( syntactic sugar ) в виде набора простых методов и условий;
- "строгий режим" (strict mode ) расширенная проверка ошибок и безопасность программ.
|