Es ist drei Jahre her, seit diese Frage gestellt wurde, aber ich stoße gerade darauf. Da diese Antwort so weit unten im Stapel liegt, erlaube mir bitte, sie zu wiederholen:
F: Ich bin interessiert, ob es Grenzen gibt, welche Arten von Werten mit const in JavaScript festgelegt werden können - insbesondere Funktionen. Ist das gültig? Zugegeben, es funktioniert, aber wird es aus irgendeinem Grund als schlechte Praxis angesehen?
Ich war motiviert, Nachforschungen anzustellen, nachdem ich einen produktiven JavaScript-Codierer beobachtet hatte, der immerconst
Aussagen verwendet functions
, auch wenn es keinen offensichtlichen Grund / Nutzen gibt.
Als Antwort auf " Wird es aus irgendeinem Grund als schlechte Praxis angesehen? " Lassen Sie mich sagen, IMO, ja, oder zumindest hat die Verwendung von Aussagen Vorteilefunction
.
Es scheint mir, dass dies weitgehend eine Frage der Präferenz und des Stils ist. Oben sind einige gute Argumente aufgeführt, aber keines ist so klar wie in diesem Artikel:
Ständige Verwirrung: Warum ich immer noch JavaScript-Funktionsanweisungen von medium.freecodecamp.org/Bill Sourour, JavaScript-Guru, Berater und Lehrer verwende.
Ich fordere alle auf, diesen Artikel zu lesen, auch wenn Sie bereits eine Entscheidung getroffen haben.
Hier sind die wichtigsten Punkte:
Funktionsanweisungen haben zwei klare Vorteile gegenüber [const] -Funktionsausdrücken:
Vorteil Nr. 1: Klarheit der Absicht
Wenn Sie täglich Tausende von Codezeilen durchsuchen, ist es hilfreich, die Absicht des Programmierers so schnell und einfach wie möglich herauszufinden.
Vorteil Nr. 2: Reihenfolge der Erklärung == Reihenfolge der Ausführung
Im Idealfall möchte ich meinen Code mehr oder weniger in der Reihenfolge deklarieren, in der ich davon ausgehe, dass er ausgeführt wird.
Dies ist der Showstopper für mich: Auf jeden Wert, der mit dem Schlüsselwort const deklariert wurde, kann nicht zugegriffen werden, bis die Ausführung ihn erreicht.
Was ich oben beschrieben habe, zwingt uns, Code zu schreiben, der verkehrt herum aussieht. Wir müssen mit der Funktion der untersten Ebene beginnen und uns nach oben arbeiten.
Mein Gehirn funktioniert nicht so. Ich möchte den Kontext vor den Details.
Der meiste Code wird von Menschen geschrieben. Daher ist es sinnvoll, dass die Reihenfolge des Verstehens der meisten Menschen in etwa der Ausführungsreihenfolge der meisten Codes entspricht.
var doSomething = <function def>;
. 4) "Sollten alle Funktionen in ES6 so definiert werden?" Scheint mir umständlich. Ich mag Funktionsdeklarationen. Jeder für sich.