我想这样做(c ++):
const int SIZE = 5;
int array[SIZE];
但在JS中。我多次使用SIZE
值(对于许多数组以及后面的代码),我不想让许多文字具有相同的值(以防我以后必须编辑它)。我在某处读到JS中有一个const
关键字,但它并不适用于所有浏览器(不确定这是否属实,但我想要一个通用的解决方案)。越短/越简越好! ;)
答案 0 :(得分:1)
你可以只指定一个
var arr = new Array(5);
初始化一个length
属性为5
但没有值(稀疏数组)的数组。
无法在C ++中声明变量类型,因为JS是loose typed语言,也没有固定长度的数组 - Array
更像是列表。对于const
关键字,请查看this question。
答案 1 :(得分:1)
const
关键字实际上是非标准的,并且只能由Mozilla实现因此无法保证跨浏览器工作(但显然有些浏览器实现它,请参阅Bergi的链接回答)。只需使用常规变量,并使用大写名称来表示它应该是常量:
var SIZE = 5;
var arr = new Array(SIZE);
注意:如果您向Array
构造函数传递除数字以外的任何内容,它将创建一个包含length
的数组和您在索引0
处传递的值。在这种情况下,最好只使用文字符号(var arr = ['foo']
)。另请注意,当您将数字传递给构造函数时,您只需设置初始length
,并且始终可以在此之后添加或删除元素。
答案 2 :(得分:0)
Object.defineProperty(window, PI, {
configurable: false,
writeable: false,
value: 3.1415
});
console.log(PI); // 3.1415
/* if 'use strict', the acts below would throw error */
PI = 0; // nothing happened
window.PI = 0; // nothing happened
delete window.PI; // nothing happened
Object.defineProperty(window, PI, {
configurable: true,
writeable: true,
value: 0
}); // nothing happened
console.log(PI); // 3.1415
数组或对象也可以使用
将其属性定义为'const'Object.defineProperties
但最快的方式是
Object.freeze(obj_name)
但你必须确保对象本身是'const',然后它的属性才是真正安全的