为什么我不能在JavaScript中声明多个const?

kni*_*ion 13 javascript ecmascript-6

这是正确的语法:

let foo, bar;

这是不正确的

const foo, bar;

这是为什么?

有没有办法在一个地方声明一些常量,并在另一个地方定义它们?除了约束声明和定义.

小智 16

因为const声明也必须初始化.这将有效:

const foo = 1, bar = 2;
Run Code Online (Sandbox Code Playgroud)


Frx*_*rem 11

可以声明一个普通变量(用varlet声明)没有值,因为您可以在以后分配它们:

let foo;  // foo has value undefined
foo = 3;  // foo has value 3
Run Code Online (Sandbox Code Playgroud)

但是,您不能对常量执行相同的操作,因为在声明它们之后无法更改它们的值:

const foo;  // ...?
foo = 3;    // this is not allowed because foo is constant
Run Code Online (Sandbox Code Playgroud)

因此,您必须同时声明并为常量赋值.这可以通过多个consts一次完成:

const foo = 3,
      bar = 8; // this works fine, foo and bar are both constants
Run Code Online (Sandbox Code Playgroud)

没有办法在一个地方声明一个const并在另一个地方分配它.你必须使用varlet代替.


ro͢*_*zie 9

正如 Sean Sobey 在他的回答中所说,这是因为const价值观必须用价值观来声明。

我想补充一点,您可以const在一个语句中声明多个值,例如

const [xMin, xMax, yMin, yMax] = [-2, 2, -1.5, 1.5];
Run Code Online (Sandbox Code Playgroud)

值得注意的是(与这里的其他答案相反)aconst不是不可变的。请参阅: https: //softwareengineering.stackexchange.com/questions/149555/difference- Between-immutable-and-const

例如:

const item = { price: 10 };
item.price= 15;
console.log(item.price);
Run Code Online (Sandbox Code Playgroud)

这将输出更新后的价格 15。