0

我想做这样的事情(c ++):

const int SIZE = 5;
int array[SIZE];

但在 JS 中。我SIZE多次使用该值(对于许多数组以及稍后在代码中),并且我不想放置许多具有相同值的文字(以防我以后必须编辑它)。我在某处读到constJS 中有一个关键字,但它不适用于每个浏览器(不确定这是否属实,但我想要一个通用的解决方案)。越短/越简单越好!;)

4

3 回答 3

1

你可以分配一个

var arr = new Array(5);

它初始化一个length属性为5但没有值的数组(稀疏数组)。

在 C++ 中声明变量类型是不可能的,因为 JS 是一种松散类型的语言,也没有固定长度的数组 - Arrays 更像是列表。对于const关键字,看看这个问题

于 2012-12-14T11:33:13.530 回答
1

const关键字实际上是非标准的,并且仅由 Mozilla 实现,因此不能保证跨浏览器工作(但显然有些浏览器实现了它,请参阅 Bergi 答案上的链接)。只需使用常规变量,大写名称表示它应该是一个常量:

var SIZE = 5;
var arr = new Array(SIZE);

注意:如果您将除数字以外的任何内容传递给Array构造函数,它将创建一个数组,其中包含length您在 index 处传递的值0。在这种情况下,最好只使用文字符号 ( var arr = ['foo'])。另请记住,当您将数字传递给构造函数时,您只是设置了初始值length,之后始终可以添加或删除元素。

于 2012-12-14T11:36:15.240 回答
1
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

数组或对象也可以将其属性定义为“常量”

Object.defineProperties

但最快的方法是

Object.freeze(obj_name)

但是您必须确保对象本身是“常量”,然后它的属性才是真正安全的

于 2015-09-01T07:12:25.317 回答