Nowości w JavaScript 1.6

JavaScript 1.6 wprowadza nowe funkcje i technologie: E4X, kilka nowych metod Array oraz rodzajów Array i String.

JavaScript 1.6 jest obsługiwany w Firefoksie 1.5 i późniejszych.

E4X

ECMAScript dla XML-a (E4X) jest potężną technologią dla tworzenia i przetwarzania treści XML przez JavaScript. Będziemy dalej usprawniać naszą obsługę E4X, włączając dodanie przezroczystej integracji z istniejącym DOM-em, jednak programiści tworzący internetowe aplikacje XML mogą korzystać z obsługi E4X w Firefoksie 1.5 już teraz.

Możesz nadal używać standardowego typu MIME używając E4X:

<script type="text/javascript">

Jednakże składnia E4X może powodować konflikty z popularnymi praktykami umieszczania skryptów w komentarzach HTML (<!--...-->) w celu ukrycia ich przed starymi przeglądarkami. E4X może również powodować konflikty z nowocześniejszą praktyką umieszczania skryptów w XML-owych sekcjach CDATA (<![CDATA[...]]>), aby umożliwić użycie symboli "<" oraz ">" w skryptach (zwróć uwagę, że nie dotyczy to HTML-a). Jeżeli napotkasz dziwne błędy składni, dodaj "; e4x=1" do wartości typu MIME:

<script type="text/javascript; e4x=1">

Zwróć uwagę, że skrypty w rozszerzeniach zawsze traktują komentarze HTML jako literały E4X. To znaczy, że "e4x=1" jest domniemany.

E4X jest opisany w Przetwarzanie XML za pomocą E4X

Dodatkowe funkcje obiektu Array

Do obiektu Array zostało dodanych 7 nowych metod, które można podzielić na dwie kategorie: metody położenia elementów oraz metody iteratywne. Metody położenia elementów to:

  • indexOf() - zwraca indeks pierwszego wystąpienia danego elementu.
  • lastIndexOf() - zwraca indeks ostatniego wystąpienia danego elementu.

Metody iteratywne to:

  • every() - wywołuje funkcję na elementach tablicy, dopóki funkcja zwraca wartość true. Zwraca wartość true, jeśli funkcja zwraca true dla każdego odwiedzonego elementu.
  • filter() - wywołuje funkcję na każdym elemencie tablicy i zwraca tablicę wszystkich elementów, dla których funkcja zwraca wartość true.
  • forEach() - wywołuje funkcje na każdym elemencie tablicy.
  • map() - wywołuje funkcję na każdym elemencie tablicy i zwraca wyniki w postaci tablicy.
  • some() - wywołuje funkcję na elementach tablicy, dopóki funkcja zwraca wartość false. Zwraca wartość true, jeśli funkcja zwraca true dla każdego odwiedzonego elementu.

Więcej infomacji można znaleźć na stronie Praca z tablicami lub w artykule Nicholasa C. Zakasa, Nowe metody Array Mozilli.

Rodzaje Array i String

Czasami chcesz zastosować metody tablicy na łańcuchu znaków. Robiąc to traktujesz łańcuch znaków jako tablicę złożoną ze znaków. Przykładowo w celu sprawdzenia, czy wszystkie znaki w zmiennej str są literami, możesz użyć:

function isLetter(character) {
  return (character >= "a" && character <= "z");
}

if (Array.prototype.every.call(str, isLetter))
  alert("Ciąg '" + str + "' składa się z samych liter!");

Taki zapis zajmuje stosunkowo dużo miejsca. JavaScript 1.6 wprowadza wygodne uproszczenie:

if (Array.every(str, isLetter))
  alert("Ciąg '" + str + "' składa się z samych liter!");

W podobny sposób możesz łatwo zastosować metody obiektu String do dowolnego obiektu:

var num = 15;
alert(String.prototype.replace(num, /5/, '2'));

Zobacz także Praca z obiektami tablicopodobnymi.

 

 

Autorzy i etykiety dokumentu

Ostatnia aktualizacja: teoli,