JavaScript中的常量数组
如何在 JavaScript 中保留一组常量?
同样,在比较时,它给了我正确的结果。
例子,
const vector = [1, 2, 3, 4];
vector[2] = 7; // An element is not constant!
console.log(JSON.stringify(vector));
// [1,2,7,4] ... Was edited
// OR
const mirror = [1, 2, 7, 4];
console.log(`are equals? ${vector == mirror}`);
// false !
回答
随着Object.freeze您可以防止添加或更改的对象的值:
'use strict';
const vector = Object.freeze([1, 2, 3, 4]);
vector[2] = 7; // An element is not constant!
'use strict';
const vector = Object.freeze([1, 2, 3, 4]);
vector.push(5);
也就是说,专业 JS 中的这种代码是不寻常的,并且有点过于防御 IMO。绝对常量的常见命名约定是使用 ALL_CAPS,例如:
const VECTOR =
大型项目的另一个选择(我更喜欢)是使用 TypeScript在编译时强制执行这些类型的规则,而不会引入额外的运行时代码。在那里,您可以执行以下操作:
const VECTOR: ReadonlyArray<Number> = [1, 2, 3, 4];
或者
const VECTOR = [1, 2, 3, 4] as const;