Новое в JavaScript 1.6

 

В 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'));

См. также

Document Tags and Contributors

Contributors to this page: link82, Nickolay, Zhuravlik, Dionys
Last updated by: link82,