5 coisas que precisa de saber sobre o operador de apagar em JavaScript
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 window
Math
, 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.

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>>
p>Construção de eliminaçãoem objectos como Math
Date
, 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
– setrue
, o valor pode ser alterado, caso contrário, é apenas de leitura. -
enumerable
– setrue
, é listado em loops, caso contrário não está listado. -
configurable
– setrue
, 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>>
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 un
definido 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