ECMAScript Javascript. L’ultimo aggiornamento di JavaScript, ECMAScript 2023 (ES14), rilasciato nel giugno 2023, porta con sé diverse caratteristiche interessanti per migliorare l’efficienza e le capacità di codifica. Ecco una rapida panoramica delle novità:
- Stringhe Unicode ben formate: Assicura una migliore gestione degli standard di testo globali.
- WaitSync atomico: Migliora la comunicazione nei programmi che condividono la memoria.
- Proprietà RegExp v Flag e String: Migliora la ricerca di pattern nei testi.
- Await di primo livello: semplifica la codifica asincrona senza bisogno di un wrapper di funzione asincrona.
- Operatore di pipeline: Semplifica il concatenamento dei comandi per una maggiore leggibilità.
- Record e tuple: Introduce strutture di dati immutabili.
- Decoratori: Offrono un modo per annotare e modificare classi e metodi.
- Pattern Matching: fornisce un metodo robusto per l’interrogazione dei dati.
- Temporal: mira a risolvere gli annosi problemi con date e orari in JavaScript.
- Controlli di tipo ergonomici: Semplifica la verifica del tipo di dati personalizzati.
- API Realms: Permette di creare ambienti di codice isolati.
Queste funzionalità mirano a rendere JavaScript più intuitivo, sicuro e potente per gli sviluppatori. Tuttavia, non tutte le funzionalità sono ancora pienamente supportate da tutti i browser, per cui la verifica della compatibilità è fondamentale. L’articolo illustra inoltre le applicazioni pratiche, le strategie di compatibilità e di migrazione e offre uno sguardo al futuro di JavaScript e a ciò che ci si aspetta dalla sua prossima versione.
Capire ECMAScript Javascript
- ECMAScript è il nome ufficiale dell’insieme di regole che JavaScript segue.
- Ogni nuova versione aggiunge nuove funzionalità o apporta modifiche
- Un gruppo chiamato Ecma TC39 decide cosa aggiungere.
- Rilasciano una nuova versione ogni anno per mantenere le cose fresche.
- I browser web cercano di supportare la nuova versione non appena viene rilasciata
Panoramica dei principali cambiamenti
L’ultima versione, ECMAScript Javascript 2023 (ES14), include alcuni aggiornamenti interessanti:
- Nuovi metodi per lavorare con gli array, come findLast() e findLastIndex()
- Metodi per ordinare e invertire gli array, chiamati toSorted() e toReversed()
- Migliori modi di usare i numeri nella codifica
- Una nuova funzione per trovare modelli nel testo, chiamata RegExp match indices API
- Un modo per spiegare meglio gli errori, grazie all’estensione Error cause.
Queste modifiche rendono più facile eseguire molte operazioni comuni durante la programmazione.
Caratteristiche principali
Stringhe Unicode ben formate
L’idea è quella di fare in modo che JavaScript possa gestire testi in qualsiasi lingua senza fare confusione. Ora c’è un modo per verificare se il testo è scritto correttamente secondo gli standard globali. Questo significa:
- Niente più confusioni con caratteri speciali che non corrispondono correttamente.
- Assicurarsi che i caratteri accoppiati siano sempre utilizzati correttamente.
Questo aiuta a evitare errori quando si lavora con testi provenienti da tutto il mondo, rendendo le cose più prevedibili durante la codifica.
Atomic waitSync
Questa funzione serve a garantire che le diverse parti del programma possano parlare tra loro in modo sicuro quando condividono la memoria. È come dare loro un modo per segnalarsi l’un l’altro, in modo che non inciampino in ciò che l’altro sta facendo. È un modo migliore per gestire il traffico nel codice.
RegExp contro Flag e proprietà delle stringhe
JavaScript è migliorato nella ricerca di schemi nel testo. Sono state introdotte nuove impostazioni per una ricerca più efficiente e nuovi modi per imparare a conoscere il testo con cui si sta lavorando. Ciò significa che è possibile trovare esattamente ciò che si sta cercando in una grande quantità di testo, più facilmente di prima.
Top-level await
Ora è possibile utilizzare await direttamente all’inizio, senza inserirlo in una funzione async. Questo rende il codice più pulito e semplice, soprattutto quando si tratta di impostare le cose o di gestire le promesse.
Pipeline Operator
Immaginate di mettere in fila i vostri comandi in modo che ognuno di essi passi il suo risultato al successivo. Questo è ciò che fa l’operatore pipeline. Rende il codice più pulito e facile da leggere, come se si seguisse una ricetta passo dopo passo.
Records e Tuples
Sono nuovi tipi di strutture di dati, non modificabili. Una volta creati, non possono essere modificati. È un’ottima soluzione quando è necessario che le cose rimangano invariate, per garantire che i dati siano sani e salvi.
Decorators
I decoratori consentono di aggiungere note o modifiche speciali alle classi e alle loro parti. È come personalizzare il codice con adesivi che indicano come deve funzionare, rendendolo più facile da gestire e riutilizzare.
Pattern Matching
È un nuovo modo per controllare i dati ed estrarre esattamente ciò che serve. È come avere un filtro più intelligente per il codice, in grado di gestire facilmente controlli più complessi.
Temporal
Temporal risolve molti problemi di date e orari in JavaScript. Fornisce strumenti più intelligenti per gestire il momento in cui le cose accadono, rendendo più facile lavorare con date, orari e calendari diversi.
Ergonomic brand checks
Si tratta di un modo più semplice per verificare che tipo di dati siano, rendendo più facile lavorare con tipi di dati personalizzati senza incorrere in errori.
Realms API
Realms API consente di creare spazi separati nel codice, come se avessimo stanze diverse per progetti diversi. Questo è utile per tenere le cose al sicuro e organizzate, soprattutto quando si lavora con codice che deve essere tenuto separato.
Esempi pratici – Casi d’uso ed esempi di codice
L’ultima versione di JavaScript offre alcuni strumenti interessanti che rendono più semplice la codifica dei siti web. Vediamo alcuni modi in cui è possibile utilizzare queste nuove funzionalità:
Simplified Asynchronous Coding con Top-Level Await
Ora è possibile attendere, ad esempio, l’acquisizione di dati da Internet senza fare wrap del codice in funzioni speciali:
// Fetch user data
const user = await fetchUser();
// Render page
renderPage(user);
Questo rende l’avvio del codice più semplice e pulito.
Condivisione dei dati più sicura con Atomics
L’API Atomics aiuta a garantire che le diverse parti del programma che accedono agli stessi dati non si ostacolino a vicenda:
// Worker 1
atomics.wait(sharedBuffer, index);
// Worker 2
atomics.notify(sharedBuffer, index);
Questo aiuta a prevenire gli errori quando più parti del programma cercano di utilizzare gli stessi dati.
Strutture di dati immutabili con record e tuple
I record e le tuple consentono di creare dati che non possono essere modificati, il che è ottimo per mantenere le cose coerenti e sicure:
// Can't change this data
const user = #['John', 'Doe', 30];
// Can't change this either
const person = #{name: 'Jane', age: 25};
Una volta impostati, questi dati non possono essere modificati accidentalmente.
Elaborazione del testo migliorata con le nuove funzioni RegExp
Le nuove funzioni RegExp facilitano il lavoro con il testo, consentendo di trovare e utilizzare più facilmente parti specifiche del testo:
const regex = /(?<first>\w+) (?<last>\w+)/;
// Get matches
const match = regex.exec(text);
const firstName = match.groups.first;
const lastName = match.groups.last;
In questo modo è possibile ottenere esattamente ciò che serve da un testo di grandi dimensioni.
Date e orari più sicuri con Temporal
Temporal semplifica notevolmente la gestione di date e orari, soprattutto se si tratta di fusi orari diversi:
const now = Temporal.Now.zonedDateTimeISO('America/New_York');
// Adding a day
const tomorrow = now.add({ days: 1 });
Si occupa degli aspetti più complicati della gestione del tempo, come i fusi orari e i calendari. Questi esempi mostrano solo alcuni dei modi in cui le ultime funzionalità di JavaScript possono contribuire a rendere la codifica per il Web più potente e sicura. Con questi nuovi strumenti, gli sviluppatori possono fare di più e più facilmente.
Compatibilità e migrazione in ECMAScript Javascript
Supporto dei browser
Non tutti i browser sono pronti per i nuovi aggiornamenti di ECMAScript 2023. Mentre alcuni aggiornamenti, come la possibilità di usare await all’inizio del codice, funzionano sulla maggior parte dei browser, altri, come la nuova API Temporal o il pattern matching, funzionano solo sulle ultime versioni. Ecco un rapido sguardo a ciò che è supportato:
- Top-level await
- Funziona in Chrome, Firefox, Safari 15+
- API temporale
- Funziona in Chrome 104+, Firefox 108+, Safari 16+
- Operatore di pipeline
- Non è completamente pronto, ma è possibile provarlo in Chrome e Firefox con impostazioni speciali.
- Corrispondenza dei pattern
- Funziona in Firefox 110+, Chrome 110+
- Ergonomic brand checks
- Funziona in Chrome, Firefox, Safari 15+
Alcune funzioni sono ancora in fase di aggiunta ai browser. Per informazioni aggiornate, potete consultare siti web come Can I Use. Se una funzione che desiderate non è supportata ovunque, potreste trovare un polyfill, che è come una patch del codice, che vi aiuterà.
Strategie di migrazione
Se volete iniziare a usare le ultime novità di JavaScript ma dovete assicurarvi che i browser più vecchi possano ancora eseguire il vostro codice, ecco alcuni suggerimenti.
Traspilation: Utilizzate strumenti come Babel per trasformare il vostro nuovo codice JavaScript in una versione più vecchia che possa essere compresa da altri browser. In questo modo, è possibile scrivere utilizzando gli aggiornamenti più recenti, ma mantenendo il sito funzionante per tutti.
Rilevamento delle funzionalità – È possibile verificare se un browser è in grado di gestire una funzionalità prima di utilizzarla:
if ("topLevelAwait" in window) {
// Use top level await
} else {
// Use an older way
}
Polyfills
Per le funzioni come Temporal che dispongono di polyfills, è possibile aggiungere al sito uno script speciale che fa funzionare queste funzioni nei browser che non le supportano ancora.
Miglioramento progressivo – Iniziare con le funzionalità di base che funzionano in qualsiasi browser. Poi, aggiungete le funzioni più nuove e sofisticate per i browser in grado di gestirle. In questo modo, il vostro sito funziona per tutti, pur utilizzando le nuove funzioni più interessanti, ove possibile. Controllando attentamente i browser supportati e utilizzando strumenti come Babel e polyfill, è possibile iniziare a utilizzare le ultime funzionalità JavaScript senza lasciare indietro nessuno.
Conclusione ECMAScript Javascript
Aspetti salienti
L’ultimo aggiornamento di JavaScript, noto come ECMAScript Javascript 2023 o ES14, introduce alcuni strumenti utili per gli sviluppatori:
- Il Top-level await rende più facile gestire le attività che attendono altro, come il caricamento dei dati, consentendo di utilizzare await da solo.
- I nuovi metodi per gli array, come findLast() e findLastIndex(), sono l’inverso dei metodi già esistenti e aiutano a esaminare i dati a ritroso.
- L’API Atomics aiuta a mantenere i dati al sicuro quando vengono eseguite più operazioni contemporaneamente, evitando di confondersi.
- I miglioramenti apportati alle RegExp semplificano la ricerca e l’utilizzo di parti specifiche di testo.
- I record e le tuple sono tipi di dati che non possono essere modificati, il che aiuta a mantenere la coerenza.
Queste modifiche rendono JavaScript più affidabile, più facile da usare e pronto ad affrontare nuove sfide come il lavoro con i dati in parallelo.
Il futuro di JavaScript
JavaScript riceve ogni anno piccoli ma importanti aggiornamenti. Questo fa sì che il linguaggio cresca in modo positivo. In prospettiva, vediamo una maggiore attenzione a rendere il codice più facile da leggere e da scrivere con elementi come la corrispondenza dei pattern, i decoratori e l’operatore pipeline. C’è anche una spinta a consentire agli sviluppatori di personalizzare il funzionamento di JavaScript. L’API Temporal serve a gestire meglio date e orari, mentre l’API Realms serve a mantenere separate e sicure le diverse parti di un programma. C’è anche un lavoro in corso per far funzionare meglio JavaScript per gli sviluppatori di tutto il mondo. JavaScript viene utilizzato in molti altri luoghi oltre ai siti web, come le funzioni eseguite nel cloud. Il linguaggio sta diventando più flessibile e facile da usare per gli sviluppatori, indipendentemente dal luogo di codifica. I prossimi aggiornamenti mirano a rendere JavaScript ancora più potente per la creazione di tutti i tipi di applicazioni.
Domande correlate
Quali sono le novità di JavaScript 2024?
JavaScript continua a migliorare per aiutare gli sviluppatori web a svolgere il loro lavoro in modo più semplice. In attesa di ES2024, possiamo aspettarci alcuni aggiornamenti interessanti come:
- API Realms: Questa funzione consente di tenere separate le diverse parti del codice JavaScript, il che è ottimo per la sicurezza e l’organizzazione.
- Strutture dati immutabili: Introdurrà elementi che non possono essere modificati una volta creati, come gli array e gli oggetti. Questo aiuta a prevenire gli errori.
- Pattern matching avanzato: rende più facile setacciare i dati e trovare esattamente ciò di cui si ha bisogno, senza troppe complicazioni.
- Decorator syntax: Aggiunge note speciali alle classi e alle loro parti per indicare come devono funzionare, rendendo il codice più facile da gestire.
Questi aggiornamenti mirano a rendere il codice più chiaro, veloce e sicuro.
Qual è la versione più recente di JavaScript?
L’ultimo aggiornamento è ECMAScript 2023 (ES14), uscito nel giugno 2023. Apporta nuove funzionalità come l’await di primo livello, metodi di array pratici come findLast(), modi per condividere in modo sicuro i dati tra i thread e modi migliori per lavorare con il testo. ECMAScript è il nome ufficiale delle regole di JavaScript e viene aggiornato ogni anno.
Quali sono le novità di JS?
Ecco alcune delle ultime aggiunte a JavaScript:
- Top-level await: semplifica l’attesa di operazioni come il caricamento dei dati.
- Nuovi metodi per gli array (findLast() e findLastIndex()) aiutano a cercare negli array dalla fine.
- API Atomics per la condivisione sicura dei dati tra i thread.
- Miglioramento della ricerca di testo con le espressioni regolari.
- Strutture di dati immutabili (record e tuple).
- API temporale per una gestione più semplice di date e orari.
Queste caratteristiche migliorano la gestione delle attese, la ricerca dei dati e la gestione di date e orari.
Quali sono le nuove caratteristiche di JavaScript es8?
ES8, noto anche come ECMAScript Javascript 2017, ha introdotto diverse funzioni utili:
- Object.entries() e Object.values() rendono più semplice lavorare con gli oggetti.
- Object.getOwnPropertyDescriptors() consente di visualizzare informazioni dettagliate sulle proprietà degli oggetti.
- Sintassi async/await per semplificare il codice asincrono.
- Memoria condivisa e atomica per lavorare con i dati su più thread.
- padStart() e padEnd() per aggiungere padding alle stringhe.
ES8 si è concentrato sulla semplificazione della scrittura del codice asincrono e sul miglioramento del modo di lavorare con gli oggetti e le stringhe.
(fonte)
Innovaformazione, scuola informatica specialistica promuove la cultura dello sviluppo web e di Javascript.
Nell’offerta formativa rivolta in prevalenza alle aziende, trovate i corsi per lo sviluppo con Javascript QUI.
INFO: info@innovaformazione.net – tel. 3471012275 (Dario Carrassi)
Vuoi essere ricontattato? Lasciaci il tuo numero telefonico e la tua email, ti richiameremo nelle 24h:
Articoli correlati
Cosa è ZK framework
Guida SAP Clean ABAP
Lavoro Contabilità Bilancio Roma
Sviluppo API REST con ASP.NET Core
Come integrare l’AI negli ATM bancomat
