有没有办法在Javascript中定义符号常量?

时间:2009-03-26 16:41:12

标签: javascript constants

我搜索了JavaScript是否提供了定义符号常量的方法,但没有找到任何内容。我错过了什么 ?

使用const var是常见做法吗?

var const MAXIMUM_VALUE = 100; 

感谢名单。

3 个答案:

答案 0 :(得分:7)

IE不支持

const,所以如果你想支持不可能的IE。

据我所知,保持简单的最佳方法就是为你的常量设置一个命名约定,比如流行的ALL UPPERCASE。有一些例子可以强制常数但是它们在大多数情况下都不值得。或者,您可以使用函数:

function myConst() { return 'myValue'; }

这当然可以被覆盖但我已经看过它了。

另见:

  

答案 1 :(得分:3)

是。但你删除var。 const替换var。

const MAXIMUM_VALUE = 100;

答案 2 :(得分:2)

Object.defineProperty(window, 'CONSTANT_NAME', {value: CONSTANT_VALUE});

// usage
console.log(CONSTANT_NAME);

Object.defineProperty()使用以下默认属性创建属性:

  • configurable 当且仅当此属性描述符的类型可能更改且属性可能从相应对象中删除时才为true。 默认为false。

  • enumerable 当且仅当在枚举相应对象的属性期间显示此属性时才显示true。 默认为false。

  • writable 当且仅当与属性关联的值可能会使用赋值运算符更改时才为true。 默认为false。

如果“常量”是一个对象,你可能还想通过冻结它使它变得不可变。 obj = Object.freeze(obj)。请记住,子属性对象不会自动冻结。