In diesem Redux-Video verwendet der Kursleiter beispielsweise immer eine Syntax wie
const counter = (state=0, action) => {
... function body here
}
wo ich nur das "traditionelle" verwenden würde
function counter(state=0, action) {
... function body here
}
Welches ist eigentlich kürzer und, IMO, klarer. Es ist einfacher, den ziemlich gleichmäßigen und strukturierten linken Rand der Seite nach dem Wort "Funktion" zu durchsuchen, als den zerlumpten rechten Rand nach einem kleinen "=>" zu durchsuchen.
Anders als this
, und zu versuchen , objektiv zu sein, nicht Meinung nach gibt es einig nützlichen Unterschied oder Vorteil für die neumodische Syntax?
javascript
functions
es6
user949300
quelle
quelle
const
beiträgt, dass die Funktion später nicht neu definiert wird.Antworten:
Funktionsanweisungen (benannte Funktionen, 2. Syntax gezeigt) werden an die Spitze des gesamten lexikalischen Bereichs gehoben, selbst diejenigen, die hinter beliebigen und Steuerblöcken stehen, wie
if
Anweisungen. Die Verwendung vonconst
(likelet
) zum Deklarieren einer Variablen gibt ihr den Blockumfang, stoppt das vollständige Heben (Heben auf bloßen Block) und stellt sicher, dass sie nicht erneut deklariert werden kann.Wenn Sie Skripte miteinander verketten oder andere Tools zum Erstellen von Paketen verwenden, kann das Hochziehen von Funktionen widersprüchliche Skripte auf eine Weise beschädigen, die schwer zu debuggen ist, da sie unbemerkt fehlschlägt. Eine erneute Deklaration
const
löst eine Ausnahme aus, bevor das Programm ausgeführt werden kann, sodass das Debuggen viel einfacher ist.quelle
const
. Es ist ein bisschen kurzsichtig, IMO,const
aus diesem Grund im Zeitalter von Eslint, Webpack, Babel usw. überall zu arbeiten. Seit mindestens einem Jahrzehnt verkettet niemand mehr manuell Dateien.Hier ist, warum Sie verwenden sollten
function
:Die Signalisierung ist klar und prägnant. Dies ist weitaus vorteilhafter als alle in der anderen Antwort aufgeführten Probleme beim Heben von Randfällen.
Sie möchten tatsächlich innerhalb von Modulen hochziehen, da, wie Sie dem folgenden Code entnehmen können, die
const
Deklaration destryDoTheThing
Fehlschlags stillschweigend fehlschlägt und erst abgefangen wird, wenn Sie versuchen, sie aufzurufen.Die meisten Junioren, mit denen ich in Kontakt komme
const
, deklarieren jede Funktion, weil es gerade eine Modeerscheinung ist, z. B. Leerzeichen über Tabulatoren zu verwenden oder alles zu machen,functional!!!
weil "OOP schlecht". Tu das nicht. Sie wollen nicht der Typ sein, der Modeerscheinungen folgt, ohne die Auswirkungen vollständig zu verstehen.vs.
quelle