Node.js: sfruttare a pieno le specifiche di ECMAScript

La somiglianza tra Node.js e JavaScript presenta diversi vantaggi. Il primo vantaggio e ovviamente quello di permettere a chi conosce JavaScript di realizzare pagine server-side per applicazioni enterprise. Il secondo vantaggio e quello di evitare i fastidiosi problemi di sviluppo cross-browser tipici di JavaScript. Per capire la questione conviene fare un passo indietro. Ai suoi albori JavaScript era soltanto uno dei tanti linguaggi di scripting per browser.

forEach() e filter()

forEach() e filter()

Vediamo quali sono le funzioni più interessanti che possiamo usare lavorando con Node.js, nonostante esse siano sconsigliate nell’ambito JavaScript. Ribadiamo il concetto: siccome Node.js gira su un motoreV8 di Google, l’utilizzo di queste funzioni è assolutamente sicuro, garantito, portabile e stabile. Usando queste funzioni non stiamo compiendo approssimazioni né scommettendo sulla tecnologia. Il supporto da parte di Node. Js delle specifiche di ECMAScript è ufficiale e possiamo farci affidamento.

Iniziamo considerando la funzione forEach, del tutto equivalente a quella presente in molti altri linguaggi di programmazione. La funzione permette di ciclare su tutti gli elementi dell’array, scorrendoli uno ad uno. La funzione accetta due argomenti: il primo verrà valorizzato con l’elemento corrente dell’array, il secondo con l’indice dell’elemento in questione. Data l’utilità di questa funzione usiamola per realizzare una funzione che ci tornerà comoda nei prossimi esempi:

per testarla eseguiamo la funzione su un paio di array, ad esempio

dove abbiamo definito i due array usando due sintassi diverse per ricordarci che sono entrambe valide. Eseguendo la funzione print_r sui due array otterremo come risultato la stampa di tutti gli elementi degli array all’interno della shell di esecuzione. Quest’uso della funzione forEach è banale ma rende bene l’idea. Il vantaggio principale è quello di rendere più snello e robusto il codice rispetto all’uso di un tradizionale ciclo for.

La funzione filter permette invece di filtrare i contenuti di un array. Il filtro va definito usando la sintassi delle callback, ad esempio

Ritorna solamente gli elementi dispari dell’array. Ciò significa che la variabile odd sarà un array che contiene solo gli elementi dispari filtrati dall’array array_2. Per verificarlo basta eseguire il seguente codice

Che mostra come l’array originale (cioè array_2) non viene modificato dal filtro.