"Variable 'X' can be made constant",'constant'是什么意思?

"Variable 'X' can be made constant", what does 'constant' mean?

VStudio 或 ReSharper 给我以下建议:

在这种情况下常量是什么意思?如果它是当前方法作用域中的一个常量,目的是什么?方法往往很小,因此与常规 var 相比,它不应该有任何优势?

请赐教

没什么复杂的。

通常使用 const 优于 let(而且肯定是 var),因为 const 更容易理解代码,因为您只需要查看初始分配知道变量的内容是什么。尽量使用。

需要注意的是,虽然常量不能被重新赋值,但在某些情况下它们的内容可以被重新赋值,例如在处理数组或对象时。例如,const x = [1]; x[0] = 2; 是完全有效的代码,但这应该被认为是一种反模式,因为人们希望常量保持不变,从而破坏 principle of least astonishment

您当然可以通过简单地创建数组的副本并将其分配给新的 const:

来使用 const 更新数组
const x = [1];
const x2 = [...x, 2];

在处理超大数组时,您可能需要考虑性能问题。

constlet 关键字是 ECMAScript 2015 标准的一部分。因此,当使用 constlet 并转译为旧的 ECMAScript 目标时,constlet 被转译为旧的 var。现在所有 browsers support const 并且使用其中一个没有真正的性能考虑。