Articles

5 cosas que debes saber sobre el operador de borrado en JavaScript

Foto de Markus Winkler en Unsplash

En JavaScript, el operador delete se emplea para eliminar una propiedad de un objeto. Tras eliminar la propiedad real, esa propiedad no será accesible y devuelve undefined.

La invocación del operador delete devuelve true cuando elimina una propiedad y false en caso contrario. Sólo es efectivo en las propiedades de un objeto, no tiene efecto en los nombres de variables o funciones.

El operador delete no debe ser usado en propiedades de objetos JavaScript predefinidos como windowMath, y Date objetos. Puede bloquear tu aplicación.

Escudriñemos algunos datos sobre el operador delete.

Eliminar las propiedades de un objeto

La única forma de eliminar completamente las propiedades de un objeto en JavaScript es utilizando el operador delete.

Si la propiedad que intentas borrar no existe, delete no tendrá ningún efecto y puede devolver true.

¿Podemos borrar variables en Javascript?

El operador delete elimina una propiedad de un objeto. No puede eliminar una variable. Cualquier propiedad declarada con var no puede ser borrada del ámbito global o del ámbito de una función.

Si declaras una variable sin var, puede ser eliminada. Veamos el ejemplo de abajo.

Operador de borrado en JavaScript

La variable declarada sin la palabra clave var la almacena internamente como una propiedad del objeto window. Así que podemos borrar las propiedades del objeto window.

¿Podemos borrar valores de un array?

Dado que los arrays de JavaScript son objetos, los elementos se pueden borrar utilizando delete.

.

delete borrará la propiedad del objeto, pero no reindexará el array ni actualizará su longitud. Esto hace que parezca que es undefined.

Usar delete puede dejar huecos indefinidos en el array. Utiliza pop()shift(), o splice() en su lugar.

¿Podemos borrar objetos incorporados?

Eliminar objetos incorporadosen objetos como MathDate, y window son inseguros, y pueden bloquear toda la aplicación.

Borrar propiedades no configurables

Las propiedades de los objetos, además de un value, tiene tres atributos especiales:

  • writable – si true, el valor se puede cambiar, si no, es de sólo lectura.
  • enumerable – si true, aparece en los bucles, si no, no aparece.
  • configurable – si true, se puede eliminar la propiedad o modificar los atributos, en caso contrario, no se puede cambiar.

Los valores asignados mediante el uso de Object.defineProperty y establecidos en configurable: false en un objeto no pueden ser eliminados.

En modo estricto, arrojará un error si intentas eliminar una propiedad no configurable.

Conclusión

delete es la única forma verdadera de eliminar las propiedades de un objeto sin que queden restos, pero funciona ~100 veces más lento si estás usando delete en bucles.

La solución alternativa es poner el valor a undefinido como object = undefined. No elimina completamente la propiedad, sólo establece el valor a indefinido. la opción no es exactamente una solución prominente, pero si la utilizas con cuidado entonces podrás mejorar el rendimiento.

¡Eso es todo! Espero que este texto pueda ayudar a perforar el operador delete

Gracias por leer 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *