Articles

5 cose che devi sapere sull’operatore di cancellazione in JavaScript

Foto di Markus Winkler su Unsplash

In JavaScript, l’operatore delete è impiegato per cancellare una proprietà di un oggetto. Dopo aver cancellato la proprietà attuale, questa non sarà più accessibile e restituisce undefined.

L’invocazione dell’operatore delete restituisce true quando elimina una proprietà e false altrimenti. è efficace solo sulle proprietà di un oggetto, non ha effetto sui nomi di variabili o funzioni.

L’operatore delete non dovrebbe essere usato sulle proprietà predefinite di oggetti JavaScript come windowMath, e Date. Può mandare in crash la vostra applicazione.

Esaminiamo alcuni fatti sull’operatore delete.

Cancellare le proprietà degli oggetti

L’unico modo per rimuovere completamente le proprietà di un oggetto in JavaScript è usando l’operatore delete.

Se la proprietà che stai cercando di cancellare non esiste, delete non avrà alcun effetto e può restituire true.

Si possono cancellare le variabili in Javascript?

L’operatore delete rimuove una proprietà da un oggetto. Non può cancellare una variabile. Qualsiasi proprietà dichiarata con var non può essere cancellata dall’ambito globale o da quello di una funzione.

Se si dichiara una variabile senza var, può essere cancellata. Vediamo l’esempio qui sotto.

operatore di cancellazione in JavaScript

La variabile dichiarata senza la parola chiave var la memorizza internamente come proprietà dell’oggetto window. Quindi possiamo cancellare le proprietà dell’oggetto window.

Possiamo cancellare i valori da un array?

Siccome gli array JavaScript sono oggetti, gli elementi possono essere cancellati usando delete.

delete cancellerà la proprietà dell’oggetto, ma non reindicizzerà l’array o aggiornerà la sua lunghezza. Questo lo fa sembrare come se fosse undefined.

Utilizzare delete può lasciare dei buchi indefiniti nell’array. Usa invece pop()shift(), o splice().

Possiamo cancellare gli oggetti integrati?

Eliminare gli oggetti built-in oggetti come MathDate, e window oggetti non sono sicuri, e possono mandare in crash l’intera applicazione.

Cancellare le proprietà non configurabili

Le proprietà degli oggetti, oltre ad un value, hanno tre attributi speciali:

  • writable – se true, il valore può essere cambiato, altrimenti, è in sola lettura.
  • enumerable – se true, è elencato nei cicli, altrimenti non è elencato.
  • configurable – se true, la proprietà può essere cancellata o gli attributi possono essere modificati, altrimenti, non può essere modificata.

I valori assegnati utilizzando Object.defineProperty e impostati su configurable: false in un oggetto non possono essere cancellati.

In modalità strict, darà un errore se si cerca di cancellare una proprietà non configurabile.

Conclusione

delete è l’unico vero modo per rimuovere le proprietà di un oggetto senza avanzi, ma funziona ~100 volte più lentamente se state usando delete nei cicli.

La soluzione alternativa è impostare il valore su un definito come object = undefined. La scelta non è esattamente una soluzione di spicco, ma se la si utilizza con cura, si potrà migliorare la performance.

Questo è tutto! Spero che questo testo possa aiutare a perforare l’operatore di cancellazione

Grazie per aver letto 🙂

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *