Ho letto il numero this, utilizzando la parola chiave delete
, è possibile eliminare la variabile JavaScript. Ma quando ho provato le stesse operazioni con costante, ma restituisce false quando provo a eliminare costante. C'è un modo per cancellare le costanti dalla memoria? Ho provato la risposta this ma non funziona.Come disinserire una costante Javascript in ES6?
risposta
Non si può direttamente farlo, guardando le specifiche ci mostrano che il valore può essere impostato, ma non sovrascritto (tale è il standard definition of a constant), tuttavia ci sono un paio di modi un po 'hacky per disattivare i valori costanti.
Utilizzando portata
const
è scoped. Definendo la costante in un blocco, esisterà solo per questo blocco.
Impostazione di un oggetto e tasti disinserimento
Definendo const obj = { /* keys */ }
definiamo un valore obj
che è costante, ma può ancora trattare i tasti come qualsiasi altra variabile, come dimostra the examples nell'articolo MDN. Si potrebbe disinserire una chiave impostandola su null.
Se è il memory management questa è la preoccupazione allora entrambe queste tecniche aiuteranno.
L'operatore delete
è in realtà per l'eliminazione di una proprietà dell'oggetto , non una variabile. In effetti, in modalità rigorosa, delete foo
is a syntax error.
In genere è possibile "eliminare" un valore/oggetto rimuovendo tutti i riferimenti ad esso, ad es. assegnazione di null
a una variabile.
Tuttavia, poiché le costanti non sono scrivibili (per definizione), non c'è modo di farlo.
Come ho scritto sul mio commento, l'eliminazione può essere utilizzata solo su oggetti e matrici. Allora, che cosa in realtà si può fare è memorizzare tutte le costanti in un oggetto di costante e liberare memoria eliminando le sue proprietà, in questo modo:
const myConstants = {};
myConstants.height = 100;
delete myConstants.height;
- 1. Come creare una costante in javascript
- 2. Javascript ES6 generatore asincrono
- 3. Come disinserire la sessione in Magento?
- 4. Dichiarazione costante prototipo Javascript
- 5. JavaScript ed ES6, variabili "globali"
- 6. Come testare l'armonia/ES6/ECMAScript 6 JavaScript?
- 7. Javascript ES6 - mappa più array
- 8. .map() a Javascript ES6 Mappa?
- 9. Qual è il modo migliore in ES6 per assegnare una costante in modo condizionale?
- 10. Come faccio a disinserire una variabile nella conchiglia?
- 11. Come posso "disinserire" una classe che è stata dichiarata
- 12. È possibile "disinserire" una variabile d'ambiente in un Makefile?
- 13. ES6 perché posso riassegnare una costante quando definita in un loop
- 14. Quanto è importante disinserire variabili in PHP?
- 15. Rompere una classe ES6 in più file
- 16. Come impostare una costante in aurelia dall'ambiente
- 17. Come nominare una costante in Objective-C?
- 18. Come recuperare dinamicamente una costante in java?
- 19. Come dichiarare una costante locale in C#?
- 20. Come dichiarare una costante Int64?
- 21. Come rendere costante il parametro della funzione in JavaScript?
- 22. Come convertire una stringa in una costante in Ruby?
- 23. Visual Studio 2015 - Javascript ES6 non funziona
- 24. Come disinserire un bit specifico in un numero intero
- 25. Javascript ES6 esportazione const vs export let
- 26. Javascript ES6 complessità computazionale/temporale delle raccolte
- 27. formattazione dei numeri in stringhe di modello (Javascript - ES6)
- 28. Javascript (ES6) const con parentesi graffe
- 29. Come si JSON.stringify una mappa ES6?
- 30. Esiste comunque una costante costante #define su una soluzione?
cosa significa che hai provato questa risposta? cioè - che cosa hai provato esattamente? –
Le costanti sono costanti. Se leggi i collegamenti personali, vedrai che le costanti non sono variabili, quindi non puoi ridefinire/eliminare costanti –
@AdrianPreuss, Esiste un modo per liberare memoria usata dalle costanti? –