Ich dachte immer, dass const Variablen in JavaScript Konstanten ... wie "Variablen, die nicht ändern können".
Also nahm ich immer den Vorteil der Verwendung von Const über/var würde so etwas wie verringerte Ressourcenverbrauch.
Aber nach einem schnellen Test sah es so aus, als ob ein const so ziemlich wie eine Let-Variable agiert. Es ist Block-Bereich und kann geändert werden ... zumindest in meinem Browser (Firefox 47.0).Was ist der Punkt, eine Konstante in JavaScript zu deklarieren
Hier ist, was ich getan habe:
const FOO = [0,1,2]
FOO[0] = 11
console.log(FOO) // > [11, 1, 2]
Und das führt zu meiner Frage: Was ist der Sinn von const verwenden? Ich meine das Wort ist länger, viele Menschen wissen nicht, const und es scheint gerade wie eine normale Variable zu handeln. Also warum sollte ich die Illusion geben, dass es nicht ist? Warum schreiben wir nicht einfach Konstanten, wie/var mit dem Namen in Großbuchstaben?
Sie verwirren ** den Wert ** mutieren, indem Sie einen neuen Wert der Variablen zuweisen. Sie können "FOO" (d. H. "FOO = 23") keinen neuen Wert zuweisen, weil "FOO" "const" ist. Da Objekte jedoch in JavaScript * veränderbar * sind, können Sie das Objekt selbst immer noch mutieren. In Verbindung stehende Fragen: http://stackoverflow.com/q/31205975/218196, http://stackoverflow.com/q/22308071/218196, http://stackoverflow.com/q/26015747/218196 –
Sie müssen suchen 'Object.freeze()' oder 'seal'. Speicherplätze können nicht ersetzt werden, wenn const verwendet wird, d. H. Es wird zu diesem Zeitpunkt ein Fehler ausgelöst. –
Was konstant ist, ist der Objektverweis, nicht die Eigenschaften dieses Objekts. – Oriol