Ich habe in letzter Zeit viel ES6-Code für io.js geschrieben. In der Natur gibt es nicht viel Code, von dem ich lernen kann. Ich habe also das Gefühl, meine eigenen Konventionen zu definieren.
Meine Frage ist, wann man const
vs benutzt let
.
Ich habe diese Regel angewendet: Wenn möglich, benutze const
. Nur verwenden, let
wenn Sie wissen, dass sich der Wert ändern muss. (Sie können jederzeit zurückgehen und a const
in a ändern , let
wenn sich später herausstellt, dass Sie den Wert ändern müssen.)
Der Hauptgrund für diese Regel ist, dass es einfach ist, sie konsistent anzuwenden. Es gibt keine Grauzonen.
Die Sache ist, wenn ich diese Regel anwende, sind in der Praxis 95% meiner Erklärungen const
. Und das sieht komisch für mich aus. Ich benutze es nur let
für Dinge wie i
in einer for
Schleife oder gelegentlich für Dinge wie angesammelte Fibonacci-Summen (was im wirklichen Leben nicht besonders häufig vorkommt). Das hat mich überrascht - es stellte sich heraus, dass 95% der 'Variablen' in meinem ES5-Code bis jetzt für Werte waren, die nicht variieren. Aber const
überall in meinem Code zu sehen, fühlt sich irgendwie falsch an.
Meine Frage lautet also: Ist es in Ordnung, so const
viel zu verwenden? Sollte ich wirklich Dinge tun wie const foo = function () {...};
?
Oder sollte ich const
für solche Situationen reservieren, in denen Sie ein Literal am Anfang eines Moduls fest programmieren - wie Sie es in Großbuchstaben tun const MARGIN_WIDTH = 410;
?
function foo() {...}
ist besser als<anything> foo = function() {...}
function foo() {...}
die beim Debuggen zu geringfügigen Verwirrungen führen kann. Außerdem bedeutet seine Existenz, dass wir zwei Konstrukte haben, die dasselbe tun, aber eines von ihnen funktioniert nur in einem sehr spezifischen Kontext. (Sie können einen Funktionsausdruck überall dort verwenden, wo ein Ausdruck existieren kann, aber Sie können nur eine Funktionsdeklaration auf Anweisungsebene verwenden.) Wenn Sie die Kürze bevorzugen, besteht das Problem möglicherweise nur darin, dass die Funktionsausdruckssyntax das ganze Wort verwendet function
.
const
so viel zu verwenden.