Is it possible to assign initial value to a const variable after its decleration statement in javascript like below? I've tried it but didn't work. I wonder if any other ways exist.
const x;
x = 5;
Thanks.
Is it possible to assign initial value to a const variable after its decleration statement in javascript like below? I've tried it but didn't work. I wonder if any other ways exist.
const x;
x = 5;
Thanks.
没有。
常量必须在声明时赋值,之后不能更改。
const x;
x = 2;
console.log(x); // == undefined
const z = 4;
z = 10;
console.log(z); // == 4
常量的值不能通过重新赋值来改变,也不能重新声明常量。因此,虽然可以在不初始化的情况下声明一个常量,但这样做是没有用的。
--MDN _
当然,在不支持的浏览器上很有可能const
,但我怀疑这就是你要问的。
根据Harmony wiki和ES6 草案,初始化程序必须存在于const
声明中。
维基说:
语法要求:
const
声明必须有每个声明标识符的初始化器
我认为这不言自明。
草案没有明确说明这一要求,但可以从语法定义中推断出来(如果我理解正确的话。它说:
LexicalBinding :
BindingIdentifier Initialiseropt
BindingPattern Initialiser
和
词法绑定:绑定标识符
如果包含此产生式的LexicalDeclaration的IsConstantDeclaration为 ,则为语法错误
true
。
据我了解,LexicalBinding
生产规则不能BindingIdentifier Initialiseropt
用于 a ,因此如您所见,const
它必须是初始化程序未标记为可选的位置。BindingPattern Initialiser
const x = 5;
但这并未得到广泛支持,即它在 Internet Explorer 上会失败。虽然适用于谷歌浏览器。我不建议const
在 javascript 中使用关键字,因为它没有很好地实现......