JavaScript 中有常量吗?

2022-08-29 22:06:05

有没有办法在JavaScript中使用常量?

如果不是,指定用作常量的变量的常见做法是什么?


答案 1

ES2015以来,JavaScript有一个const的概念:

const MY_CONSTANT = "some-value";

几乎适用于所有浏览器,除了IE 8,9和10。有些可能还需要启用严格模式

您可以与ALL_CAPS等约定一起使用,以表明如果您需要支持较旧的浏览器或使用旧代码,则不应修改某些值:var

var MY_CONSTANT = "some-value";

答案 2

是否正在尝试保护变量不被修改?如果是这样,那么您可以使用模块模式:

var CONFIG = (function() {
     var private = {
         'MY_CONST': '1',
         'ANOTHER_CONST': '2'
     };

     return {
        get: function(name) { return private[name]; }
    };
})();

alert('MY_CONST: ' + CONFIG.get('MY_CONST'));  // 1

CONFIG.MY_CONST = '2';
alert('MY_CONST: ' + CONFIG.get('MY_CONST'));  // 1

CONFIG.private.MY_CONST = '2';                 // error
alert('MY_CONST: ' + CONFIG.get('MY_CONST'));  // 1

使用此方法,无法修改值。但是,您必须在 CONFIG :(上使用 get() 方法。

如果您不需要严格保护变量值,则只需按照建议执行操作并使用全部大写的约定即可。