从 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 成为 block 作用域。
那么如何有条件地创建一个常量呢?
最佳答案
如您所知,您的问题是 const
必须在声明它的同一表达式中进行初始化。
这并不意味着分配给常量的值必须是文字值。它实际上可以是任何有效的表达式 - 三元:
const x = IsSomeValueTrue() ? 1 : 2;
或者只是将其分配给变量的值?
let y = 1;
if(IsSomeValueTrue()) {
y = 2;
}
const x = y;
您当然也可以将其分配给函数的返回值:
function getConstantValue() {
return 3;
}
const x = getConstantValue();
因此,有很多方法可以使值动态化,您只需确保它仅分配在一个位置即可。
关于javascript - 在 Javascript 中有条件地初始化常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38765194/