ES6 ab wir haben const
.Bedingte Initialisierung einer Konstante in Javascript
Dies ist nicht erlaubt:
const x; //declare first
//and then initialize it
if(condition) x = 5;
else x = 10;
Dies macht Sinn, weil es uns von der Nutzung der Konstante verhindert, bevor es initialisiert wird.
Aber wenn ich
if(condition)
const x = 5;
else
const x = 10;
x wird Block scoped.
Also, wie man eine Konstante bedingt erstellt?
Funktionsweise ist sauberer, wenn wir lange Bedingungen und Berechnungen haben (wie in meinem Fall), die mit ternärem Operator chaotisch aussehen würden. –
Ich stimme zu, dass die Funktionsmethode wahrscheinlich die sauberste ist, besonders für kompliziertere Bedingungen. Wählen Sie einfach die Methode aus, die am besten zu Ihrem Anwendungsfall passt :) – Hecksa
Ich bevorzuge die letzte Option (Funktion), da Sie die Logik ändern, wiederverwenden oder sogar Unit testen können, ohne vom Rest der Klasse abhängig zu sein. – ssube