CNode

如何定義JavaScript常量?

Bbyvoid发布于14 年前最后回复13 年前4 回复19001 浏览0 收藏
查看回复

回复 (4)

X
xqunix#1·14 年前

一般不推荐使用 const 关键字,因为它不是 ECMAScript 语法的一部分。

当需要常量的时候一般是以命名习惯来约束的,亦即使用大写字母加下划线。

如果需要“真正的”常量的话,可以使用 ECMA 5 的 defineProperty 方法,

例如:

var M = {};
Object.defineProperty(M, 'PI', {
  get: function() { return 3.14; }
});

或者

var M = {};
Object.defineProperty(M, 'PI', {
  value: 3.14,
  writable: false
});

注意由于这个方法是 ECMA 5 的一部分,所以在 node 上用是完全没有问题的,但是就请不要在浏览器端用了(除非不打算支持 IE 以及一些旧版本的浏览器用户)。

关于 defineProperty 的详细用法可以参考 MDNJohn Resig 的 blog

C
cccc000#4·13 年前

然而,const将会成为ECMAScript 6标准中的一部分,但是将会有不同的语义:使用const声明的常量会和使用let语句声明的变量一样,拥有块级作用域. ---------引自MDN

参与回复
登录后即可参与回复。登录