From 7842e1948c3e68ee9261e204e37fefdae490cffc Mon Sep 17 00:00:00 2001 From: Nathália Pissuti Date: Mon, 11 Oct 2021 08:46:21 -0300 Subject: Javascript reference error cant_delete page in pt-br (#2673) * Javascript reference error cant_delete page in pt-br * Fix single quotes typo * Revert "Fix single quotes typo" This reverts commit 2ff3a93dd30c8c7bd4fcd6fcbec55a4f5cddc598. --- .../reference/errors/cant_delete/index.md | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 files/pt-br/web/javascript/reference/errors/cant_delete/index.md diff --git a/files/pt-br/web/javascript/reference/errors/cant_delete/index.md b/files/pt-br/web/javascript/reference/errors/cant_delete/index.md new file mode 100644 index 0000000000..954dfdbdf2 --- /dev/null +++ b/files/pt-br/web/javascript/reference/errors/cant_delete/index.md @@ -0,0 +1,71 @@ +--- +title: 'TypeError: property "x" is non-configurable and can''t be deleted' +slug: Web/JavaScript/Reference/Errors/Cant_delete +tags: + - Error + - Errors + - JavaScript + - Strict Mode + - TypeError +--- +{{jsSidebar("Errors")}} + +A exceção do Javascript "property is non-configurable and can't be deleted" ocorre +quando é feita a tentativa de deletar uma propriedade, mas a propriedade [não é configurável](/pt-BR/docs/Web/JavaScript/Data_structures#properties). + +## Mensagem + +```js +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 # (Chrome) +``` + +## Tipo de Erro + +{{jsxref("TypeError")}} apenas no modo strict. + +## O que deu errado? + +Foi feita a tentativa de deletar uma propriedade, mas esta propriedade [não é configurável](/pt-BR/docs/Web/JavaScript/Data_structures#properties). O +atributo `configurable` controla se a propriedade pode ser deletada do +objeto e se seus atributos (Exceto `writable`) podem ser alterados. + +Este erro acontece apenas no modo [strict](/pt-BR/docs/Web/JavaScript/Reference/Strict_mode). No +modo de código não estrito, a operação retorna `false`. + +## Exemplos + +### Tentando excluir uma propriedade não configurável + +Propriedades não configuráveis não são comuns, mas podem ser criadas usando +{{jsxref("Object.defineProperty()")}} ou {{jsxref("Object.freeze()")}}. + +```js example-bad +'use strict'; +var obj = Object.freeze({name: 'Elsa', score: 157}); +delete obj.score; // TypeError + +'use strict'; +var obj = {}; +Object.defineProperty(obj, 'foo', {value: 2, configurable: false}); +delete obj.foo; // TypeError + +'use strict'; +var frozenArray = Object.freeze([0, 1, 2]); +frozenArray.pop(); // TypeError +``` + +Também existem algumas propriedades não configuráveis embutidas no Javascript. Talvez você tenha +tentado deletar uma constante matemática. + +```js example-bad +'use strict'; +delete Math.PI; // TypeError +``` + +## Veja também + +- [Operador delete](/pt-BR/docs/Web/JavaScript/Reference/Operators/delete) +- {{jsxref("Object.defineProperty()")}} +- {{jsxref("Object.freeze()")}} -- cgit v1.2.3-54-g00ecf