Articles

5 coisas que precisa de saber sobre o operador de apagar em JavaScript

Photo by Markus Winkler on Unsplash

In JavaScript, o operador de eliminação é empregado para eliminar uma propriedade de um objecto. Após apagar a propriedade real, essa propriedade não será acessível e retorna undefined.

A invocação do delete o operador retorna true quando remove uma propriedade e false caso contrário. só é eficaz nas propriedades de um objecto, não tem efeito nos nomes de variáveis ou funções.

O operador de eliminação não deve ser utilizado em propriedades pré-definidas de objectos JavaScript como windowMath, e Date objectos. Pode danificar a sua aplicação.

Vamos examinar alguns factos sobre o delete operator.

Delete object properties

A única maneira de remover completamente as propriedades de um objecto em JavaScript é usando delete operator.

se a propriedade que está a tentar apagar não existir, apagar não terá qualquer efeito e pode voltar a ser verdadeiro.

Podemos apagar variáveis em Javascript?

O operador de eliminação remove uma propriedade de um objecto. Não pode apagar uma variável. Qualquer propriedade declarada com var não pode ser apagada do âmbito global ou do âmbito de uma função.

Se declarar uma variável sem var, pode ser apagado. Vejamos o exemplo abaixo.

delete operator in JavaScript

p> A variável declarada sem o var palavra-chave armazena-a internamente como propriedade do window objecto. Assim, podemos apagar as propriedades do window objecto.

Podemos apagar valores de um array?

Desde que as matrizes JavaScript são objectos, os elementos podem ser apagados utilizando delete.

delete irá apagar a propriedade do objecto, mas não irá reindexar a matriz ou actualizar o seu comprimento. Isto faz com que pareça como se fosse undefined.

p>p>Using delete pode deixar buracos indefinidos no array. Usar pop()shift(), ou splice() em vez disso.

Posemos eliminar objectos incorporados?

>div>>div>>

/div>>

p>Construção de eliminaçãoem objectos como MathDate, e window os objectos são inseguros, e podem travar toda a sua aplicação.

Deleting nonfigurable properties

Object properties, além de um value, tem três atributos especiais:

  • writable – se true, o valor pode ser alterado, caso contrário, é apenas de leitura.
  • enumerable – se true, é listado em loops, caso contrário não está listado.
  • configurable – se true, a propriedade pode ser apagada ou os atributos podem ser modificados, caso contrário, não pode ser alterada.

/div>

Os valores atribuídos usando Object.defineProperty e definidos para configurable: false num objecto não podem ser apagados.

div>

/div>>

Em modo estrito, atirá um erro se tentar apagar uma propriedade não configurável.

Conclusion

delete é a única forma verdadeira de remover as propriedades de um objecto sem quaisquer restos, mas funciona ~100 vezes mais lentamente se estiver a usar delete em loops.

A solução alternativa é definir o valor para undefinido como object = undefined. Não elimina totalmente a propriedade, apenas define o valor como indefinido. a escolha não é exactamente uma solução proeminente, mas se a utilizar com cuidado, poderá melhorar o desempenho.

p>sim é tudo! Espero que este texto possa ajudar a perfurar o operador de apagamento

Agradecimentos de leitura 🙂

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *