ECMAScript 2026


Nouvelles fonctionnalités de JavaScript 2026

Fonctionnalité Description
Error.isError() Vérifie si une valeur est un objet Error
Array.fromAsync() Copie des éléments d'itérables asynchrones dans un nouveau tableau
Le mot-clé using Déclare des variables à portée de bloc qui sont disposées de manière synchrone
await using Nettoyage automatique des ressources
Uint8Array fromBase64() Crée un objet Uint8Array à partir d'une chaîne encodée en base64
Uint8Array toBase64() Renvoie une chaîne encodée en base64 à partir des données d'un int8Array
Uint8Array fromHex() Crée un objet Uint8Array à partir d'une chaîne hexadécimale
Uint8Array toHex() Renvoie une chaîne encodée en hexadécimal à partir des données d'un int8Array

Avertissement

L'édition 2026 n'est pas encore publiée. Elle est normalement prévue pour juin.

À partir de novembre 2025, voici une liste des fonctionnalités dans le brouillon, qui devraient figurer dans l'ES2026.


Error.isError()

La méthode statique Error.isError() vérifie si une valeur est un objet Error.

Exemple

Error.isError(new TypeError()); // true
Error.isError({ name: "Error" }); // false
Essayez-le vous-même »

Error.isError() est une alternative sûre à instanceof Error qui échoue à travers les contextes.

Vérification d'erreur sécurisée pour les contextes :
Une erreur provenant d'un iframe est vérifiée avec Error.isError() et échoue avec instanceof .

Support des navigateurs

Error.isError() est déjà pris en charge dans de nombreux navigateurs :

Chrome
134
Edge
134
Firefox
138
Safari
Opera
119
Mar 2025 Mar 2025 Avr 2025 Mai 2025

Array.fromAsync()

Exemple

async function* asyncGenerator() {
yield Promise.resolve(1);
yield Promise.resolve(2);
yield Promise.resolve(3);
}

async function processAsyncData() {
const arr = await Array.fromAsync(asyncGenerator());
}

processAsyncData();
Essayez-le vous-même »

Support des navigateurs

Array.fromAsync() est déjà pris en charge dans de nombreux navigateurs :

Chrome
121
Edge
121
Firefox
115
Safari
16.4
Opera
Jan 2024 Jan 2024 Juil 2023 Mai 2023

Uint8Array to/fromBase64()

Exemples

let string = 'formation-ti.org 123';

const arr = Uint8Array.fromBase64(string);
Essayez-le vous-même »
const arr = new Uint8Array([91,116,156,134,138,37,179,93,183]);

let text = arr.toBase64();
Essayez-le vous-même »

Support des navigateurs

to/fromBase64() est déjà pris en charge dans de nombreux navigateurs :

Chrome
140
Edge
140
Firefox
133
Safari
18.2
Opera
Sep 2025 Sep 2025 Nov 2024 Des 2024

Uint8Array to/fromHex()

Exemples

let text = '5b749c868a25b35db7';

const arr = Uint8Array.fromHex(text);
Essayez-le vous-même »
const arr = new Uint8Array([91,116,156,134,138,37,179,93,183]);

let text = arr.toHex();
Essayez-le vous-même »

Support des navigateurs

to/fromHex() est déjà pris en charge dans de nombreux navigateurs :

Chrome
140
Edge
140
Firefox
133
Safari
18.2
Opera
Sep 2025 Sep 2025 Nov 2024 Des 2024

Gestion explicite des ressources

Le mot-clé using

Le mot-clé using est un ajout à JavaScript 2026. Il fournit un mécanisme pour gérer les ressources qui nécessitent une élimination explicite.

Il déclare une variable à portée de bloc , similaire à const , mais avec la différence qu'il garantit l'élimination synchrone de la ressource utilisée lorsque la variable sort de la portée.

Exemple

class MyResource {
constructor(name) {
this.name = name;
myDisplay(`Ressource ${this.name} acquise.`);
}
[Symbol.dispose]() {
myDisplay(`Ressource ${this.name} éliminée.`);
}
}

function manageResource() {
using resource = new MyResource("Connexion à la base de données");

// Utilisez la ressource ici
myDisplay(`Utilisation de la ressource : ${resource.name}`);
}
Essayez-le vous-même »

Le mot-clé using simplifie la gestion des ressources en gérant automatiquement le processus de nettoyage, réduisant le risque de fuites de ressources et améliorant la lisibilité du code par rapport aux blocs manuels try...finally pour l'élimination.

  • Gestion des ressources
    using est conçu pour les objets qui implémentent la méthode Symbol.dispose , qui définit la logique de nettoyage pour la ressource.

  • Élimination synchrone
    Lorsqu'une variable déclarée avec using sort de sa portée (à la fin d'un bloc ou d'une fonction), sa méthode Symbol.dispose est automatiquement appelée.

  • Élimination asynchrone
    Pour les ressources nécessitant un nettoyage asynchrone, la déclaration await using peut être utilisée. Cela garantit que le processus d'élimination est attendu avant que la variable ne sorte complètement de la portée.

  • Portée de bloc
    Comme const , les variables déclarées avec using sont locales au bloc dans lequel elles sont déclarées et doivent être initialisées au moment de la déclaration.

  • Immutable
    Comme pour const , les variables déclarées avec using ne peuvent pas être réaffectées après l'initialisation.

Support des navigateurs

using est déjà pris en charge dans de nombreux navigateurs :

Chrome
134
Edge
134
Firefox
141
Safari
Opera
119
Mar 2025 Mar 2025 Juil 2025 Mai 2025

Gestion explicite des ressources

await using

Inspiré par d'autres langages, JavaScript 2026 introduit des blocs using pour le nettoyage automatique des ressources telles que les poignées de fichiers, les connexions à des bases de données ou les flux réseau.

Cela est particulièrement bénéfique pour les opérations asynchrones :

Exemple

async function processFile() {
using fileHandle = await openFile('data.txt');

// Travaillez avec fileHandle ici

} // fileHandle est automatiquement fermé ici
Essayez-le vous-même »

Support des navigateurs

await using est déjà pris en charge dans de nombreux navigateurs :

Chrome
134
Edge
134
Firefox
141
Safari
Opera
119
Mar 2025 Mar 2025 Juil 2025 Mai 2025