2016-12-11 4 views
5

Warum sollte ich die meiste Zeit const anstelle von let in JavaScript verwenden? Wie wir wissen, wenn wir const verwenden, können wir Wert später nicht neu zuweisen. Dann warum nicht let anstelle von const verwenden?Warum sollte ich die meiste Zeit const anstelle von JavaScript verwenden?

+1

Warum denken Sie "_most der Zeit sollte ich const anstelle von let_" verwenden? – csmckelvey

+0

Ich nehme an, dass diese Frage geschlossen wird, also schnelle Antwort, Sie sollten nicht immer eine von ihnen verwenden, sollten Sie diese Typen als die Notwendigkeit der Variablen verwenden, const bedeuten, dass diese Variable in der App nicht änderbar sein wird, so Wenn Sie diese Variable sehen, wissen Sie, dass sie nicht geändert wird, und es ist eine Konstante, also bedeutet dies, dass dies ein allgemeiner Typ sein wird, der sich in der Zukunft ändern wird. Wenn Sie eine Variable benötigen, die geändert werden kann, verwenden Sie var, wenn Sie const nicht verwenden. –

+4

'const' (falls zutreffend) erleichtert es jemandem, Ihren Code zu verstehen. Wenn man "const" sieht, weiß man ohne den Rest des Codes zu sehen, dass diese Variable nicht neu zugewiesen wird (obwohl sie immer noch mutieren könnte). Und wenn Sie keine Neuzuordnung wünschen, erhalten Sie als Programmierer einen nützlichen Fehler, wenn es passiert. – trincot

Antwort

13

sollten Sie verwenden let oder const wie in Ihrem Code angebracht:

  • let, wenn der Wert der Variable wird während der Code ändern
  • const wenn es nicht (aber das ist eine Frage des Stils (abhängig von der Stilvorlage Ihres Projekts)

In der Praxis, wenn Sie die üblichen Regeln einhalten, um Ihre Funktionen klein zu halten und So ist es überraschend, wie oft es sich herausstellt, dass Sie const verwenden, weil Sie am Ende nicht den Wert einer Variablen ändern müssen. (Na ja, es überrascht mich jedenfalls ...)

const verwenden, wenn der variable's¹ Wert erreicht, ein paar Dinge zu ändern, nicht gemeint:

  1. Es erzählt anderen Code zu lesen, die Sie beabsichtigen nicht, den Wert zu ändern.

  2. Es gibt Ihnen einen schönen proaktiven Fehler, wenn Sie etwas tun, das den Wert der Variablen ändern würde, ohne dies zu tun.

  3. Es gibt dem Optimierer der JavaScript-Engine einen Hinweis, dass Sie den Wert dieser Variablen nicht ändern werden. Während die Engine dies häufig durch statische Code-Analyse durchführen kann, erspart es die Verwendung von const das Problem und lässt es tun, wenn die statische Code-Analyse möglicherweise nicht zeigt, dass der Wert unverändert ist.

Wenn Sie den Fehler in # 2 oben erhalten, können Sie dann eine intelligente Entscheidung treffen: Sollten Sie es zu let ändern, oder meinst du nicht, dass Variablenwert in erster Linie ändern?


¹ Ja, es ist lustig, den Begriff „Variable“ zu verwenden, um etwas zu beziehen, die nicht per Definition variieren. :-) Der Spezifikationsbegriff ist "bindend", aber ich wette, dass man in der alltäglichen Konversation nicht bald von Leuten über "Bindings" reden wird ... Also wird der Aggregatbegriff wahrscheinlich "variabel" bleiben, außer wenn wir uns spezifisch darauf beziehen können etwas als "Konstante".

Verwandte Themen