El propósito del operador delete en Javascript, como se puede pensar es eliminar cosas. Más específicamente, borrará las propiedades de los objetos. El operador delete está diseñado para ser utilizado en las propiedades de los objetos. No afecta a las variables ni a las funciones.
Después de la eliminación, la propiedad no puede ser utilizada antes de añadirla de nuevo al objeto.
Operador delete de javascript
El delete de javascript es un operador incorporado que elimina la propiedad del objeto. El operador delete elimina tanto el valor de la propiedad como la propia propiedad. Si no hay más referencias a la misma propiedad, entonces finalmente se libera automáticamente.
El operador delete también tiene el valor de retorno. Si tiene éxito en la eliminación de la propiedad, devolverá true. Si no consigue eliminar la propiedad porque ésta no es escribible, devolverá false, o si está en modo estricto, lanzará un error.
Sintaxis
La sintaxis del operador Delete de Javascript es la siguiente.
delete object.property// ordelete object
Veamos el siguiente ejemplo.
// app.jslet appObj = {a: 21, b: 22, c: 23}; console.log(appObj.a);delete appObj.a;console.log(appObj);
Veamos la salida.
Una cosa que debes tener en cuenta es que el operador delete no debe ser usado en propiedades de objetos predefinidos de Javascript. Puede bloquear tu aplicación.
Ahora, si intentas eliminar todo el objeto, entonces puede que no te sea posible. Sólo puede eliminar las propiedades del objeto y no todo el objeto.
// app.jslet appObj = {a: 21, b: 22, c: 23}; console.log(appObj);delete appObj;console.log(appObj);
Vea la salida.
A diferencia de lo que sugiere la creencia común, un operador de eliminación en Javascript no tiene nada que ver con la liberación directa de la memoria. La gestión de la memoria se hace indirectamente rompiendo referencias.
El operador delete elimina la propiedad dada del objeto. En la eliminación exitosa, devolverá true; de lo contrario, se devolverá false. Sin embargo, es esencial tener en cuenta los siguientes casos.
- Si la propiedad que está tratando de eliminar no existe en el objeto entonces, eliminar no tendrá ningún efecto y devolverá true.
- Si la propiedad con el mismo nombre existe en la cadena de prototipos del objeto, entonces, después de la eliminación, un objeto utilizará la propiedad de la cadena de prototipos. Por lo tanto, irá por la jerarquía superior.
Veamos el siguiente ejemplo de Verdadero o Falso.
// app.jslet appObj = {a: 21, b: 22, c: 23}; console.log(appObj);console.log(delete appObj.d);
Veamos el siguiente ejemplo.
Puedes ver que si la propiedad del objeto no existe, y si intentas quitar esa propiedad que no existe, entonces nos dará el verdadero en la salida.
Benchmark del Operador Delete en Javascript
Puedes ver el benchmark aquí.
Delete es la única forma verdadera de eliminar las propiedades del objeto sin que queden restos, pero funciona ~ 100 veces más lento que su «forma alternativa», que es la siguiente.
object = undefined
Esta alternativa no es la forma correcta de eliminar la propiedad de un objeto. Pero, si la usas con cuidado, puedes acelerar drásticamente algunos algoritmos.
Entonces, ¿cuándo usar undefined y cuándo usar el operador delete?
El objeto puede verse como el conjunto de pares clave-valor. Lo que yo llamo ‘valor’ es una primitiva o una referencia a otro objeto, conectado a esa ‘clave’.
Usa el operador delete cuando pasas un objeto resultado al código sobre el que no tienes ningún control (o cuando no estás seguro de tu equipo o de ti mismo). Elimina la clave del hashmap.
let obj = { prop: 1 }; delete obj.prop;
Usa el undefined cuando te importe el rendimiento. Puede dar un excelente impulso a tu código.
La clave permanece en su lugar en el hashmap, y sólo se sustituye el valor por un indefinido.
Entiende que el bucle for in seguirá iterando sobre esa clave.
let obj = { prop: 1 }; obj.prop = undefined;
Usando el método anterior, no todas las formas de determinar la existencia de la propiedad funcionarán como se espera.
Sin embargo, este código:
object.prop === undefined
se comportará de forma equivalente para ambos métodos.
Conclusión
La necesidad de un operador de borrado en Javascript es siempre que se quiera eliminar una propiedad de un objeto. A veces, en lugar de eliminar una propiedad, los desarrolladores de Javascript le dan un valor de null.
Finalmente, la propiedad remove de Object en Javascript Example ha terminado.
Post recomendados
Valores de objetos en Javascript
Javascript Async / Await
Javascript Fetch API
Clases en Javascript
Javascript Import