From 39f2114f9797eb51994966c6bb8ff1814c9a4da8 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 12:36:08 +0100 Subject: unslug fr: move --- .../reference/errors/cant_delete/index.html | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 files/fr/web/javascript/reference/errors/cant_delete/index.html (limited to 'files/fr/web/javascript/reference/errors/cant_delete') diff --git a/files/fr/web/javascript/reference/errors/cant_delete/index.html b/files/fr/web/javascript/reference/errors/cant_delete/index.html new file mode 100644 index 0000000000..ce9c8a7b0e --- /dev/null +++ b/files/fr/web/javascript/reference/errors/cant_delete/index.html @@ -0,0 +1,59 @@ +--- +title: 'TypeError: property "x" is non-configurable and can''t be deleted' +slug: Web/JavaScript/Reference/Erreurs/Cant_delete +tags: + - Erreurs + - JavaScript + - Mode strict + - TypeError +translation_of: Web/JavaScript/Reference/Errors/Cant_delete +--- +
{{jsSidebar("Errors")}}
+ +

Message

+ +
TypeError: Calling delete on 'x' is not allowed in strict mode (Edge)
+TypeError: property "x" is non-configurable and can't be deleted. (Firefox)
+TypeError: Cannot delete property 'x' of #<Object> (Chrome)
+
+ +

Type d'erreur

+ +

{{jsxref("TypeError")}} in strict mode only.

+ +

Quel est le problème ?

+ +

Une instruction demande la suppression d'une propriété non-configurable. L'attribut configurable permet de contrôler si la propriété peut être supprimée de l'objet auquel elle est rattachée et si ces attributs (en dehors de writable) peuvent être modifiés.

+ +

Cette erreur ne se produit qu'en mode strict. En mode non-strict, l'opération de suppression renverra false.

+ +

Exemples

+ +

Les propriétés non-configurables ne sont pas très fréquentes mais il est possible d'en créer grâce à {{jsxref("Object.defineProperty()")}} ou à  {{jsxref("Object.freeze()")}}.

+ +
"use strict";
+var obj = Object.freeze({name: "Elsa", score: 157});
+delete obj.score;  // TypeError
+
+"use strict";
+var obj = {};
+Object.defineProperty(obj, "toto", {value: 2, configurable: false});
+delete obj.toto;  // TypeError
+
+"use strict";
+var frozenArray = Object.freeze([0, 1, 2]);
+frozenArray.pop();  // TypeError
+
+ +

Certaines propriétés natives de JavaScript sont non-configurables. Peut-être que le code tente de supprimer une constante mathématique :

+ +
"use strict";
+delete Math.PI;  // TypeError
+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf