【发布时间】:2009-03-26 16:41:12
【问题描述】:
我搜索了 JavaScript 是否提供了定义符号常量的方法,但没有找到任何东西。我错过了什么 ?
改用 const var 是一种常见的做法吗?
var const MAXIMUM_VALUE = 100;
谢谢。
【问题讨论】:
标签: javascript constants
我搜索了 JavaScript 是否提供了定义符号常量的方法,但没有找到任何东西。我错过了什么 ?
改用 const var 是一种常见的做法吗?
var const MAXIMUM_VALUE = 100;
谢谢。
【问题讨论】:
标签: javascript constants
const不被IE支持,所以如果你想支持IE是不可能的。
据我所知,为了简单起见,最好的方法是为您的常量设置一个命名约定,例如广受欢迎的 ALL UPPERCASE。有一些例子可以强制使用常量,但它们在大多数情况下并不值得。或者,您可以使用一个函数:
function myConst() { return 'myValue'; }
这当然仍然可以被覆盖,但我已经看到它使用过。
另见:
【讨论】:
是的。但是你删除了var。 const 替换 var。
const MAXIMUM_VALUE = 100;
【讨论】:
Object.defineProperty(window, 'CONSTANT_NAME', {value: CONSTANT_VALUE});
// usage
console.log(CONSTANT_NAME);
Object.defineProperty() 创建一个具有以下默认属性的属性:
configurable 当且仅当此属性描述符的类型可以更改并且可以从相应对象中删除该属性时才为真。
默认为 false。
enumerable 当且仅当在枚举相应对象的属性期间显示此属性时才为真。 默认为 false。
writable 当且仅当与属性关联的值可以通过赋值运算符更改时才为真。 默认为 false。
如果“常量”是一个对象,您可能还想通过冻结它使其不可变。 obj =Object.freeze(obj)。请记住,子属性对象不会自动冻结。
【讨论】: