Let vs const - was ist zu benutzen?

Hallo habr Ich präsentiere Ihnen die Übersetzung des Artikels “On let vs const” von Dan Abramov .

Mein vorheriger Beitrag enthält diesen Absatz:

let vs const vs var : Normalerweise brauchen Sie nur let . Wenn Sie das erneute Schreiben einer Variablen verhindern müssen, können Sie const verwenden . (Einige sind diesbezüglich sehr umständlich und bevorzugen die Verwendung von const, wenn es nur eine Variablenzuweisung gibt).

Diese Aussage stellte sich als sehr umstritten heraus, auf Twitter'e und Reddit'e wurde sofort heftig darüber diskutiert. Es scheint, dass die populärste Meinung (oder zumindest mündlich ausgedrückt durch die Mehrheit) ist, dass Sie immer const verwenden und nur dann auf let verweisen sollten, wenn dies erforderlich ist.

In diesem Beitrag werde ich kurz alle Vor- und Nachteile auflisten, die ich getroffen habe, und meine persönliche Meinung zu diesem Thema äußern.

Warum lieber const


  • Eine klare Regel: Dies ist eine zusätzliche Belastung für das Gehirn, wenn Sie jedes Mal überlegen müssen, ob es besser ist, const oder let zu verwenden. Die Regel „Immer const verwenden, wo es funktioniert“ befreit Sie von unnötigem Aufwand und überlässt diese Aufgabe dem Linter.
  • Neuzuweisungen können Fehler verursachen: In umfangreichen Funktionen kann es vorkommen, dass Sie nicht bemerken, dass eine Variable neu zugewiesen wurde. Dies kann die Ursache für Fehler sein. Besonders bei Verschlüssen. Const gibt Ihnen die Gewissheit, dass Sie immer den gleichen Wert sehen.
  • Mutation verstehen: Diejenigen, die gerade erst mit dem Erlernen von JavaScript beginnen, können das Prinzip von const missverstehen, da sie denken, dass es die Mutation einer Variablen verhindert. Es ist wichtig, den Unterschied zwischen der Mutation einer Variablen und ihrer Neuzuweisung zu verstehen. Die Verwendung von const zwingt Sie, diesen Unterschied frühzeitig zu verstehen und zu konfrontieren.
  • Sinnlose Neuzuweisungen: Manchmal macht die Neuzuweisung einer Variablen überhaupt keinen Sinn. In React Hooks sind die Werte, die Sie von dem Hook erhalten, wie etwa useState, eher Parameter. Sie gehen in die gleiche Richtung. Wenn Sie einen Fehler in der Zuweisung sehen, werden Sie schneller über den Datenfluss "Reagieren" informiert.
  • Vorteile der Ausführung: Es gibt auch seltene Behauptungen, dass die JavaScript-Engine bei Verwendung von const Code schneller ausführen kann, da bekannt ist, dass eine Variable nicht überschrieben werden kann.

Warum lieber nicht const


  • Const verliert seine Bedeutung: Wenn wir const überall verwenden, verlieren wir die Fähigkeit zu verstehen, ob es wichtig war, dass etwas nicht neu zugewiesen wurde.
  • Die Verlegenheit mit Immunität: In jeder Diskussion, in der sie sagen, dass Sie immer const verwenden sollten , gibt es diejenigen, die über das Thema Immunität verwirrt sind. Dies ist nicht überraschend, da beide Operationen (Deklaration und Neuzuweisung) denselben Operator "=" verwenden. Als Reaktion darauf sagen sie normalerweise, dass Sie nur "die Sprache lernen" müssen. Die Gegenargumente sind jedoch so, dass, wenn die Methode, die die Fehler von Anfängern verhindern soll, genau diese Anfänger verwirrt, dies nicht so nützlich ist. Und dies hilft leider nicht, Mutationsfehler zu verhindern, die sich auf Module erstrecken und alles betreffen.
  • Druck, um eine Überdeklaration zu vermeiden: Befürworter der "const-first" -Methode zwingen Entwickler, keine in der Bedingung deklarierten let- in-Variablen zu verwenden. Zum Beispiel können Sie schreiben
    const a = cond ? b : c 
    Anstelle von if- Bedingungen ist es schwierig, sowohl b- als auch c- Zweige (Objekte) komplex und mit detaillierten Namen zu versehen.
  • Eine Neuzuweisung kann nicht die Ursache von Fehlern sein: Es gibt drei Hauptkomponenten, bei denen eine Neuzuweisung die Ursache von Fehlern sein kann: Der Gültigkeitsbereich ist zu groß (als modulare oder große Funktion), wenn der Wert ein Parameter ist (da nicht erwartet wird, dass dieser Wert mit etwas anderem identisch ist von dem, was übergeben wurde) und wann die Variable in einer verschachtelten Funktion verwendet wird. In vielen Situationen entsprechen die meisten Variablen jedoch keinem dieser Fälle, und die Parameter können überhaupt nicht als Konstanten bezeichnet werden.
  • Es gibt keinen Leistungsvorteil: Meiner Meinung nach ist die Engine bereits gewarnt - welche Variablen werden einmal deklariert, auch wenn Sie var oder let verwenden . Wenn wir weiterhin argumentieren, dass const den Code produktiver macht, können wir genauso gut argumentieren, dass zusätzliche Überprüfungen die Ausführungszeit verlängern als verringern können. Im Ernst, die Motoren sind schlauer.

Meiner Meinung


Es ist mir egal.

Ich kann jede Regel verwenden, die andere verwenden.

Wenn Sie sich darum kümmern, verwenden Sie den Linter, der die Überprüfung und Korrektur automatisiert und let to const ändert, damit Ihre Zeit bei der zukünftigen Codeüberprüfung nicht verschwendet wird.

Denken Sie zum Schluss daran, dass Linters die Entwicklung erleichtern sollen. Wenn eine Regel Sie oder Ihr Team stört, entfernen Sie sie einfach. Es wird das Beste sein. Lerne aus deinen Fehlern.

Link zum Originalartikel - On let vs const .

Source: https://habr.com/ru/post/de482892/


All Articles