Operador de eliminación de JavaScript

A continuación se muestra el ejemplo del operador de eliminación.

  • Ejemplo:

    <script> 
        let emp = { 
            firstName: "Raj"
            lastName: "Kumar"
            salary: 40000 
        
      
        console.log(delete emp.salary);
        console.log(emp);
    </script> 
  • Producción:
    true
    {"firstName":"Raj","lastName":"Kumar"}

Este artículo discutirá el operador de eliminación disponible en JavaScript. Eliminar es comparativamente un operador menos conocido en JavaScript. Este operador se usa más específicamente para eliminar propiedades de objetos de JavaScript.

Los métodos JavaScript pop(), shift() o splice() están disponibles para eliminar un elemento de una array. Pero debido al par clave-valor en un objeto, la eliminación es más complicada. Tenga en cuenta que el operador de eliminación solo funciona en objetos y no en variables o funciones.

Sintaxis:

delete object
// or
delete object.property
// or
delete object['property']

Este operador devuelve verdadero si elimina una propiedad. Mientras que eliminar una propiedad de objeto que no existe devolverá un verdadero pero no afectará al objeto. Aunque al intentar eliminar una variable o una función devolverá un falso .

Ejemplo: Suponiendo que un objeto llamado persona tiene tres pares clave-valor (es decir , nombre, apellido y teléfono ). Ahora, usar el operador de eliminación para eliminar la propiedad del teléfono devolverá true .

<script>
    let person = {
        firstName: "John",
        lastName: "Doe",
        phone: 12345
    }
  
    console.log(delete person.phone);
    console.log(person);
</script>

Producción:

Como muestra la imagen de arriba, eliminar person.phone devuelve verdadero y el registro del objeto de persona muestra que la propiedad del teléfono ya no existe.

Intentemos aplicar el operador de eliminación para eliminar una variable y una función.

<script>
    let num = 5;
    let sum = (a, b) => {
        return a + b;
    }
  
    console.log(delete num); //false
    console.log(delete sum); //false
</script>

Producción:

false
false

Debido a que el operador de eliminación no funciona para variables o funciones, devuelve falso y las variables y funciones reales permanecen intactas.

Otra cosa a tener en cuenta es que este operador no elimina el valor de la propiedad sino la propiedad en sí.

Ejemplo:

<script>
    let person = {
        firstName: "John",
        lastName: "Doe",
        phone: 12345
    }
  
    let phone = person.phone;
  
    console.log(delete person.phone); //true
    console.log(phone); //12345
</script>

Como los objetos son de tipo de referencia, tanto la variable person.phone como phone se referirán a la misma dirección de memoria.

Producción:

true
12345

El resultado muestra que el operador de eliminación eliminó la propiedad pero el valor aún existe en la memoria.

Excepción: las variables globales se pueden eliminar mediante el operador de eliminación . Debido a que las variables globales son propiedades del objeto de la ventana y como la eliminación funciona en los objetos, eliminará la variable.

Ejemplo:

<script>
    toDelete = 5;
  
    // true
    console.log(delete toDelete);
  
    // toDelete is not defined
    console.log(toDelete);
</script>

Sin usar la palabra clave var, let o const , establece la variable como una variable global y funcionará como una propiedad de objeto.

Producción:

true
Uncaught ReferenceError: toDelete is not defined

La eliminación toDelete devuelve verdadero e intentar acceder a la variable después de eliminarla arroja un error de referencia ya que la variable ya no está definida.

Eliminación de valores de array Uso de delete: las arrays de JavaScript son, después de todo, objetos. Por lo tanto, se puede usar el operador de eliminación . Pero causará un problema porque después de eliminar el elemento de la array, este operador mostrará la posición como vacía y no actualizará la longitud de la array.

Ejemplo:

<script>
    let arr = [1, 2, 3]
  
    console.log(delete arr[0]); //true
    console.log(arr); //[empty, 2, 3]
</script>

Producción:

Por lo tanto, usar los métodos pop(), shift() o splice() es claramente un mejor enfoque para eliminar elementos de la array.

Conclusión: los desarrolladores utilizan otras formas, como establecer el valor de una propiedad de objeto en nulo o indefinido . Pero la propiedad seguirá existiendo en el objeto y algunos operadores como for in loop seguirán mostrando la presencia de la propiedad nula o indefinida .

El uso de la propiedad de eliminación en los bucles ralentiza significativamente el programa. Por lo tanto, este método solo debe usarse cuando sea absolutamente necesario eliminar una propiedad de objeto.

Publicación traducida automáticamente

Artículo escrito por nemotivity y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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