Nowości w JavaScript 1.6
z Mozilla Developer Center, polskiego centrum programistów Mozilli.
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.
[edytuj] 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
[edytuj] 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.
[edytuj] 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.replace(num, /5/, '2'));
Zobacz także Praca z obiektami tablicopodobnymi.