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;


以上是JavaScript中的常量数组的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>