Новое в JavaScript 1.6
Материал из MDC.
В JavaScript 1.6 реализованы несколько новых возможностей: поддержка E4X, несколько новых методов Array, и generic-методы Array и String. JavaScript 1.6 поддерживается начиная с Firefox 1.5.
Содержание |
[править] E4X
ECMAScript for XML (E4X) — это мощная технология для создания и обработки XML-данных из JavaScript кода. Возможность работать с DOM объектами посредством E4X будет реализована в следующих версиях, однако разработчики, пишущие веб-приложения c использованием XML, могут извлечь выгоду из уже реализованной функциональности.
Работая с E4X, Вы всё ещё можете использовать стандартные типы MIME:
<script type="text/javascript">
Однако, синтаксис E4X может конфликтовать с обычной практикой помещения скриптов в HTML-комментарии (<!--...-->) чтобы скрыть их от старых браузеров. E4X так же может конфликтовать с новомодной практикой вставки скриптов в секции CDATA (<![CDATA[...]]>), чтобы обеспечить поддержку символов «<» и «>» в скриптах (заметьте, что это не относится к HTML). Если Вы видите необъяснимые ошибки, просто добавьте, «; e4x=1» к описанию MIME типа:
<script type="text/javascript; e4x=1">
Заметьте, что скрипты в расширениях всегда трактуют комментарии HTML как литералы E4X. Так что, «; e4x=1» подразумевается.
[править] Дополнения Array
У объектов Array появилось семь новых методов, которые можно разделить на две группы — методы поиска элемента и итеративные методы. Методы поиска элемента это:
-
indexOf()— возвращает номер первого вхождения переданного элемента. -
lastIndexOf()— возвращает номер последнего вхождения переданного элемента.
Итеративные методы:
-
every()— запускает заданную функцию с каждым элементом массива и возврадает значениеtrue, если функция вернула значениеtrueдля каждого элементом. -
filter()— запускает заданную функцию с каждым элементом массива и возвращает массив всех элементов, для которых функция вернула значениеtrue. -
forEach()— запускает заданную функцию для каждого элемента массива. -
map()— запускает заданную функцию для каждого элемента массива и возвращает массив, состоящий из значений, возвращенных из функции. -
some()— запускает заданную функцию для каждого элемента массива и возвращает значениеtrue, если функция вернула значениеtrueхотя бы для одного из элементов.
Дополнительную информацию по этой теме можно получить из статьи Николаса C. Закаса (Nicholas C. Zakas) «Mozilla's New Array Methods».
[править] Обобщенные методы Array и String
Иногда бывает удобно применить методы Array к строкам, трактуя строку, как массив символов. Например, для проверки, что все элементы строки str — латинские строчные буквы, можно использовать такой код:
function isLetter(character) {
return (character >= "a" && character <= "z");
}
if (Array.prototype.every.call(str, isLetter))
alert("The string '" + str + "' contains only letters!");
Конструкция Array.prototype.every.call длинная и не слишком удобная. В JavaScript 1.6 введен упрощенный способ использования методов Array, полезных не только для массивов:
if (Array.every(str, isLetter))
alert("The string '" + str + "' contains only letters!");
Аналогично, можно применять методы String к любому объекту:
var num = 15; alert(String.replace(num, /5/, '2'));
[править] См. также
- Новое в JavaScript 1.7 — новые возможности JavaScript, введённые в Firefox 2.