| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Deprecated_and_obsolete_features | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Cette page liste les fonctionnalits de JavaScript qui sont dprcies (c'est--dire encore disponibles mais prvues pour tre supprimes) et obsoltes (c'est--dire plus utilisables).
Ces fonctionnalits dprcies peuvent encore tre utilises, mais doivent tre utilises avec prudence, car elles ne sont pas obligatoirement implmentes par tous les moteurs JavaScript. Vous devez travailler les supprimer de votre code.
Certaines de ces fonctionnalits dprcies sont listes dans la section Annexe B (angl.) de la spcification ECMAScript. Cette section est dcrite comme normative optionnelle c'est--dire que les navigateurs web doivent implmenter ces fonctionnalits, tandis que les htes non web peuvent ne pas le faire. Ces fonctionnalits sont probablement stables, car les supprimer provoque des problmes de compatibilit ascendante et casse les sites web existants. (JavaScript a pour objectif de conception de ne pas casser le web .) Cependant, elles ne sont pas portables sur toutes les plateformes et peuvent ne pas tre prises en charge par tous les outils d'analyse, il est donc conseill de ne pas les utiliser, comme l'introduction de l'Annexe B l'indique :
Toutes les fonctionnalits et tous les comportements du langage dcrits dans la prsente annexe prsentent une ou plusieurs caractristiques indsirables et, en l'absence d'usage historique, sont supprims de la prsente spcification.
Les programmeureuses ne doivent pas utiliser ou supposer l'existence de ces fonctionnalits et comportements lors de l'criture de nouveau code ECMAScript.
Certaines autres, bien que dans le corps principal de la spcification, sont galement marques comme normatives optionnelles et ne doivent pas tre utilises de manire dpendante.
Le code source JavaScript, s'il est analys comme des scripts, permet des commentaires de type HTML, comme si le script fait partie d'une balise <script>.
Le code suivant est un JavaScript valide lorsqu'il est excut dans un navigateur web (ou Node.js, qui utilise le moteur V8 de Chrome) :
<!-- commentaire
console.log("a"); <!-- un autre commentaire
console.log("b");
--> Plus de commentaires
// Affiche "a" et "b"
<!-- et --> agissent tous deux comme //, c'est--dire comme des commentaires sur une ligne. --> n'est valide qu'au dbut d'une ligne (pour viter toute ambigut avec un dcrment postfix suivi d'un oprateur suprieur), tandis que <!-- peut apparatre n'importe o dans la ligne.
RegExpLes proprits suivantes sont dprcies. Cela n'affecte pas leur utilisation dans les chanes de caractres de remplacement :
$1-$9Sous-chanes de caractres entre parenthses, si elles existent.
input, $_La chane de caractres par rapport laquelle une expression rationnelle est compare.
lastMatch, $&La dernire sous-chane de caractres correspondante.
lastParen, $+La dernire sous-chane de caractres entre parenthses, si elle existe.
leftContext, $`La sous-chane de caractres prcdant la correspondance la plus rcente.
rightContext, $'La sous-chane de caractres suivant la correspondance la plus rcente.
Attention : vitez d'utiliser ces proprits statiques, car elles peuvent causer des problmes lors de l'interaction avec du code externe (angl.) !
La mthode compile() est dprcie. Il est recommand de crer une nouvelle instance de RegExp la place.
Les syntaxes regex suivantes sont dprcies et ne sont disponibles qu'en mode insensible Unicode. En mode sensible Unicode, elles sont toutes des erreurs de syntaxe :
- devient un caractre littral.\cX o X est un chiffre ou _ sont dcodes de la mme manire que celles avec des lettres ASCII : \c0 est identique \cP lorsqu'on prend le modulo 32. De plus, si la forme \cX est rencontre n'importe o o X n'est pas l'un des caractres reconnus, alors la barre oblique inverse est trait comme un caractre littral.\k dans une regex qui n'a pas de groupes capturant nomms est traite comme un chappement d'identit.], {, et } peuvent apparatre littralement sans chappement s'ils ne peuvent pas tre interprts comme la fin d'une classe de caractres ou des dlimiteurs de quantificateur.Functioncaller des fonctions et la proprit arguments.callee sont dprcies et indisponibles en mode strict.arguments en tant que proprit d'une fonction, vous devez utiliser l'objet arguments l'intrieur des fermetures de fonction.ObjectObject.prototype.__proto__ est dprci. Utilisez Object.getPrototypeOf et Object.setPrototypeOf la place. Cela ne s'applique pas la cl littrale __proto__ dans les littraux d'objet.Object.prototype.__defineGetter__, Object.prototype.__defineSetter__, Object.prototype.__lookupGetter__ et Object.prototype.__lookupSetter__ sont dprcies. Utilisez Object.getOwnPropertyDescriptor et Object.defineProperty la place.StringString.prototype.fontsize et String.prototype.big sont dprcies.String.prototype.substr n'est probablement pas supprime de sitt, mais elle est dfinie dans l'annexe B et est donc optionnelle sur le plan normatif.String.prototype.trimLeft et String.prototype.trimRight doivent tre remplacs par String.prototype.trimStart et String.prototype.trimEnd.DategetYear() et setYear() sont affectes par le problme de l'an 2000 et ont t remplaces par getFullYear() et setFullYear().toGMTString() est dprcie. Utilisez toUTCString() la place.escape() et unescape() sont dprcies. Utilisez encodeURI(), encodeURIComponent(), decodeURI() ou decodeURIComponent() pour encoder et dcoder les squences d'chappement des caractres spciaux.L'instruction with est dprcie et indisponible en mode strict.
Les initialisateurs dans les dclarations var des en-ttes de boucles forin sont dprcis et produisent des erreurs de syntaxe en mode strict. L'expression d'initialisation est value et affecte la variable, mais la valeur est immdiatement raffecte lors de la premire itration de la boucle.
Normalement, le bloc catch d'une instruction trycatch ne peut contenir aucune dclaration de variable portant le mme nom que les variables lies dans le catch(). Une grammaire tendue permet au bloc catch de contenir une variable dclare avec var portant le mme nom que l'identifiant li au catch, mais uniquement si la liaison catch est un identifiant simple, et non un modle de dstructuration. Cependant, l'initialisation et l'affectation de cette variable n'agissent que sur l'identifiant li au catch, au lieu de la variable de porte suprieure, et le comportement peut tre droutant.
var a = 2;
try {
throw new Error();
} catch (a) {
var a = 1; // Cette valeur 1 est affecte `a` qui est attrap, pas au `a` extrieur.
}
console.log(a); // 2
try {
throw new Error();
// Note : l'identifiant a t chang en `err` pour viter le conflit
// avec la dclaration interne de `a`.
} catch (err) {
var a = 1; // Cette valeur 1 est affecte `a` de la porte suprieure.
}
console.log(a); // 1
Cela est rpertori dans l'annexe B de la spcification et peut donc ne pas tre implment partout. vitez tout conflit de noms entre l'identifiant li au catch et les variables dclares dans le bloc catch.
Ces fonctionnalits obsoltes ont t entirement supprimes de JavaScript et ne peuvent plus tre utilises partir de la version indique de JavaScript.
RegExpLes lments suivants sont dsormais des proprits des instances de RegExp, et non plus du constructeur RegExp :
| Proprit | Description |
|---|---|
global |
Indique si l'expression rationnelle doit tre teste contre toutes les correspondances possibles dans une chane de caractres, ou seulement contre la premire. |
ignoreCase |
Indique si la casse doit tre ignore lors de la tentative de correspondance dans une chane de caractres. |
lastIndex |
L'index partir duquel commencer la prochaine correspondance. |
multiline (galement avec RegExp.$*) |
Indique si la recherche doit s'effectuer sur plusieurs lignes. |
source |
Le texte du motif. |
La mthode valueOf() n'est plus spcialise pour RegExp. Elle utilise Object.prototype.valueOf(), qui retourne elle-mme.
Functionarity des fonctions est obsolte. Utilisez length la place.Object| Proprit | Description | Alternative |
|---|---|---|
__count__ |
Retourne le nombre de proprits numrables directement disponible sur un objet dfini par l'utilisateurice. | Object.keys() |
__parent__ |
Pointe vers le contexte d'un objet. | Pas de remplacement direct |
__iterator__ |
Utilis avec les itrateurs hrits. | Symbol.iterator et les nouveaux protocoles d'itration |
__noSuchMethod__ |
Une mthode appele lorsqu'une proprit inexistante est appele en tant que mthode. | Proxy |
Object.prototype.eval() |
value une chane de caractres de code JavaScript dans le contexte de l'objet dfini. | Pas de remplacement direct |
Object.observe() |
Observation asynchrone des changements d'un objet. | Proxy |
Object.unobserve() |
Supprime les observateurs. | Proxy |
Object.getNotifier() |
Cre un objet notificateur qui permet de dclencher de manire synthtique un changement observable avec Object.observe(). |
Pas de remplacement direct |
Object.prototype.watch() |
Attache un gestionnaire de fonction de rappel une proprit qui est appel lorsque la proprit est assigne. | Proxy |
Object.prototype.unwatch() |
Supprime les gestionnaires de surveillance sur une proprit. | Proxy |
StringString comme String.slice(myStr, 0, 12), String.replace(myStr, /\./g, "!"), etc. ont t introduites dans Firefox 1.5 (JavaScript 1.6), dprcies dans Firefox 53 et supprimes dans Firefox 68. Vous pouvez utiliser les mthodes sur String.prototype avec Function.call() la place.String.prototype.quote a t supprim dans Firefox 37.flags dans String.prototype.search, String.prototype.match, et String.prototype.replace est obsolte.WeakMapWeakMap.prototype.clear() a t ajout dans Firefox 20 et supprim dans Firefox 46. Il n'est pas possible de parcourir toutes les cls dans un WeakMap.DateDate.prototype.toLocaleFormat(), qui utilisait une chane de caractres de format dans le mme format attendu par la fonction strftime() en C, est obsolte. Utilisez toLocaleString() ou Intl.DateTimeFormat la place.ArrayArray comme Array.slice(myArr, 0, 12), Array.forEach(myArr, myFn), etc. ont t introduites dans Firefox 1.5 (JavaScript 1.6), dprcies dans Firefox 68 et supprimes dans Firefox 71. Vous pouvez utiliser les mthodes sur Array.prototype avec Function.call() la place.| Proprit | Description | Alternative |
|---|---|---|
Array.observe() |
Observation asynchrone des modifications des tableaux. | Proxy |
Array.unobserve() |
Supprimer les observateurs. | Proxy |
NumberNumber.toInteger() est obsolte. Utilisez Math.floor(), Math.round(), ou d'autres mthodes la place.ProxyProxy.create() et Proxy.createFunction() sont obsoltes. Utilisez le constructeur Proxy() la place.hasOwn (bogue 980565 (angl.), Firefox 33).getEnumerablePropertyKeys (bogue 783829 (angl.), Firefox 37)getOwnPropertyNames (bogue 1007334 (angl.), Firefox 33)keys (bogue 1007334 (angl.), Firefox 33)ParallelArrayParallelArray est obsolte.for each...in est obsolte. Utilisez for...of la place.let et les expressions let sont obsoltes.function () 1 comme raccourci de function () { return 1; }) sont obsoltes. Utilisez des function rationnelles ou des fonctions flches la place.Les mthodes toSource() des tableaux, nombres, chanes de caractres, etc. et la fonction globale uneval() sont obsoltes. Utilisez toString(), ou crivez votre propre mthode de srialisation la place.
Les instructions de fonction gnratrice hrite et les expressions de fonction gnratrice hrite sont supprimes. La syntaxe de fonction gnratrice hrite rutilise le mot-cl function, qui devient automatiquement une fonction gnratrice lorsqu'il y a une ou plusieurs expressions yield dans le corps c'est maintenant une erreur de syntaxe. Utilisez les instructions function* et les expressions function* la place.
Les comprhensions de tableau et les comprhensions de gnrateur sont supprimes.
// Comprhensions de tableau hrites
[for (x of iterable) x]
[for (x of iterable) if (condition) x]
[for (x of iterable) for (y of iterable) x + y]
// Comprhensions de gnrateur hrites
(for (x of iterable) x)
(for (x of iterable) if (condition) x)
(for (x of iterable) for (y of iterable) x + y)
Firefox, avant la version 26, a implment un autre protocole d'itrateur similaire au protocole d'itration standard. Un objet est un itrateur hrite lorsqu'il implmente une mthode next(), qui produit une valeur chaque appel et lance un objet StopIteration la fin de l'itration. Ce protocole d'itrateur hrite diffre du protocole d'itrateur standard :
next(), au lieu de la proprit value de l'objet IteratorResult.StopIteration, au lieu d'utiliser la proprit done de l'objet IteratorResult.Cette fonctionnalit, ainsi que le constructeur global StopIteration, ont t supprims dans Firefox 58+. Pour les utilisations futures, envisagez d'utiliser les boucles forof et le protocole d'itration.
Les variables dise sont obsoltes. Pour crer des structures circulaires, utilisez plutt des variables temporaires.
Cette page a t modifie le 11 oct. 2026 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |