ES6 以降では がありますconst
。
これは許可されていません:
const x; //declare first
//and then initialize it
if(condition) x = 5;
else x = 10;
これは、定数が初期化される前に使用できないようにするため、理にかなっています。
でももし私が
if(condition)
const x = 5;
else
const x = 10;
x はブロックスコープになります。
では、条件付きで定数を作成するにはどうすればよいでしょうか?
ベストアンサー1
ご存知のとおり、問題は、 a がconst
宣言されたのと同じ式で初期化する必要があることです。
これは、定数に割り当てる値がリテラル値でなければならないという意味ではありません。実際には、任意の有効な式、つまり三項演算子を使用できます。
const x = IsSomeValueTrue() ? 1 : 2;
それとも、単に変数の値に割り当てるのでしょうか?
let y = 1;
if(IsSomeValueTrue()) {
y = 2;
}
const x = y;
もちろん、関数の戻り値に割り当てることもできます。
function getConstantValue() {
return 3;
}
const x = getConstantValue();
したがって、値を動的にする方法はたくさんありますが、値が 1 か所にのみ割り当てられるようにする必要があります。