协慌网

登录 贡献 社区

JavaScript 中是否有常量?

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

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

答案

ES2015 开始 ,JavaScript 有一个const的概念:

const MY_CONSTANT = "some-value";

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

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

var MY_CONSTANT = "some-value";

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

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()方法:(。

如果您不需要严格保护变量值,那么只需按照建议执行并使用 ALL CAPS 约定。

const关键字在ECMAScript 6 草案中,但它到目前为止只享有一些浏览器支持: http//kangax.github.io/compat-table/es6/ 。语法是:

const CONSTANT_NAME = 0;