Novità in JavaScript 1.6

JavaScript 1.6 introduce diverse nuove funzionalità: E4X, vari metodi per gli Array e i metodi generici per gli array e le stringhe.

JavaScript 1.6 è supportato in Firefox 1.5 e successivi.

E4X

ECMAScript for XML (E4X) è una potente tecnologia che permette di creare ed elaborare contenuto XML tramite JavaScript. Continueremo a migliorare il supporto a E4X, aggiungendo anche un'integrazione trasparente al DOM già esistente, ma gli sviluppatori che stanno creando applicazioni web basate su XML possono beneficiare del supporto a E4X in Firefox 1.5.

E' ancora possibile utilizzare il tipo MIME standard per E4X:

<script type="text/javascript">

Tuttavia, la sintassi di E4X può entrare in conflitto con la pratica molto comune di inserire gli script nei commenti HTML (<!--...-->) per nasconderli ai vecchi browser. E4X può anche entrare in conflitto con le sezioni CDATA (<![CDATA[...]]>), che permettono l'uso di simboli "<" e ">" in uno script (si noti che questo non si applica all'HTML). Se si incontrano errori apparentemente inspiegabili, si provi ad aggiungere "; e4x=1" al tipo MIME:

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

Si noti che gli script nelle estensioni trattano sempre i commenti HTML nella maniera corretta. In pratica, "e4x=1" è implicito.

Aggiunte agli array

Vi sono sette nuovi metodi per gli array che possono essere divisi in due categorie, metodi di locazione di un elemento e metodi iterativi. I metodi di locazione sono:

  • indexOf() - restituisce l'indice della prima occorrenza dell'elemento dato.
  • lastIndexOf|lastIndexOf() - restituisce l'indice dell'ultima occorrenza dell'elemento dato.

I metodi iterativi sono:

  • every() - esegue una funzione per ogni elemento presente nell'array e restituisce true se la funzione restituisce true per tutti gli elementi.
  • filter() - esegue una funzione per ogni elemento presente nell'array e restituisce un array di tutti gli elementi per i quali la funzione ha restituito true.
  • forEach() - esegue una funzione per ogni elemento presente nell'array.
  • map() - esegue una funzione per ogni elemento presente nell'array e restituisce i risultati in un altro array.
  • some() - esegue una funzione per ogni elemento presente nell'array e restituisce true se la funzione restituisce true per almeno uno degli elementi.

Per ulteriori informazioni, si veda l'articolo (in inglese) di Nicholas C. Zakas: Mozilla's New Array Methods.

Metodi generici per array e stringhe

A volte si vorrebbe utilizzare i metodi per gli array con le stringhe. Facendo questo, si tratta una stringa come se fosse un array di caratteri. Per esempio, per controllare che ogni carattere nella variabile str sia una lettera, si potrebbe scrivere:

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

if (Array.prototype.every.call(str, isLetter))
  alert("La stringa '" + str + "' contiene solo lettere!");

Questa notazione è piuttosto lunga e JavaScript 1.6 introduce una scorciatoia:

if (Array.every(str, isLetter))
  alert("La stringa '" + str + "' contiene solo lettere!");

Similmente, si può facilmente applicare un metodo stringa a qualsiasi oggetto:

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

Vedi anche

Novità in JavaScript 1.7 introdotte in Firefox 2.

Document Tags and Contributors

Contributors to this page: Federico
Last updated by: Federico,