Прототипы новых расширений стандарта JavaScript

Современные тенденции таковы, что платформа HTML5 становится все более функциональной, веб-приложения становятся все более богатыми и сценарии, которые требуют взаимодействие с серверной стороной для выполнения тривиальных задач становятся все более нудными. Если мы взглянем на клиентский код, то можем заметить некоторый дефицит возможностей JavaScript.

Microsoft вовлечен в совершенствование стандарта JavaScript. Через активное участие в рабочей группе Ecma TC39 мы согласовали и отправили на утверждение готовую часть предложенных стандартов, которые предлагают расширение таких важных библиотек, как Math, Number и String и представили поддержку нового функционала Globalization. Мы рассказали о первых версиях прототипов библиотек на встрече посвященной стандарту в июле в кампусе Microsoft и рассказали про реализацию Globalization на встрече группы стандарта в кампусе Apple в Купертино на прошлой неделе. В добавок, мы выпустили эти базовые реализации для того, чтобы JavaScript-сообщество могло предоставить свои отзывы при использовании новых функций на практике.

Что мы предлагаем

В этом выпуске мы предлагаем следующие расширения для встроенных JavaScript-библиотек:

image

Для того, чтобы проиллюстрировать приведем следующий код:

var aStr = "24-"; var aStrR = aStr.reverse(); var num = aStrR * 1; if (Number.isInteger(num)) { console.log("The sign of " + num + " is " + Math.sign(num)); };

В этом выпуске мы так же включили реализацию развивающейся спецификации Globalization. Globalization (глобализация) – это понятие в разработки ПО, которое предполагает корректную обработку и поддержку работы с числами, форматами, валютами и датами разных стран. С помощью этой библиотеки вы можете показывать даты и числа в нужном формате и указывать свойства упорядочивания для целей организации правильной сортировки и поиска в разных языках и форматах разных стран. Вы так же можете установить форматы даты и чисел для использования альтернативных календарей в своем коде, например, исламского календаря или корректной демонстрации валюты, например, китайского юаня. Ниже код с демонстрацией:

var nf = new Globalization.NumberFormat(localeList, { style : "currency", currency : "CNY", currencyDisplay: "symbol", maxmimumFractionDigit: 1 }) nf.format(100); // "¥100.00" var dtf = new Globalization.DateTimeFormat( new Globalization.LocaleList(["ar-SA-u-ca-islamic-nu-latin"]), { weekday : "long", }) dtf.format() // today's date dtf.format(new Date("11/15/2011")); // "الثلاثاء, ١٢ ١٩ ٣٢"

Как получить новый функционал?

Прототипы библиотек будут загружены автоматически, когда вы перейдете на демо Intrinsics Extensions demo или Globalization demo. Другим способом загрузить библиотеки является прямая загрузка с сайта Microsoft посвященного стандартам. Имейте в виду, что как и другие релизы HTML5 Labs на эти демонстрационные библиотеки не распространяется поддержка Microsoft. Они должны использоваться только для изучения и их не стоит использовать в промышленном применении.

Ваши отзывы

Мы создали несколько демонстрационных приложений, так чтобы вы могли оценить новый функционал. После того, как вы установите компоненты, обратите внимание на демо Intrinsics Extensions и Globalization для того, чтобы оценить новые API  в действии.

Как всегда, мы призываем вас тестировать библиотеки, изучать и пробовать примеры, загружать прототипы и разрабатывать собственные демо-приложения, как вам захочется. Мы стараемся улучшить JavaScript и сделать построение функциональных приложений проще с использованием стандартов.

Спасибо вам за ваш интерес!

Claudio Caldato, Adalberto Foresti – команда Interoperability Strategy Team.

Это перевод оригинальной статьи Prototypes of JavaScript Globalization & Math, String, and Number extensions