"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];
在处理超大数组时,您可能需要考虑性能问题。
const
和 let
关键字是 ECMAScript 2015 标准的一部分。因此,当使用 const
或 let
并转译为旧的 ECMAScript 目标时,const
和 let
被转译为旧的 var
。现在所有 browsers support const
并且使用其中一个没有真正的性能考虑。
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];
在处理超大数组时,您可能需要考虑性能问题。
const
和 let
关键字是 ECMAScript 2015 标准的一部分。因此,当使用 const
或 let
并转译为旧的 ECMAScript 目标时,const
和 let
被转译为旧的 var
。现在所有 browsers support const
并且使用其中一个没有真正的性能考虑。