有没有办法在 JavaScript 中定义符号常量?
我搜索了 JavaScript 是否提供了定义符号常量的方法,但没有找到任何内容。 我错过了什么 ?
使用 const var 代替是常见做法吗?
var const MAXIMUM_VALUE = 100;
谢谢。
I searched if JavaScript offers a mean to define symbolic constants, but didn't find anything. Did I miss something ?
Is it a common practices to use const var instead ?
var const MAXIMUM_VALUE = 100;
Thanx.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
IE 不支持
const
,所以如果你想支持 IE 那是不可能的。据我所知,为了保持简单,最好的方法就是为常量制定一个命名约定,比如流行的全大写。 有一些例子可以强制使用常量,但大多数情况下它们不值得。 或者,您可以使用一个函数:
这当然仍然可以被覆盖,但我已经看到它被使用。
另请参阅:
const
is not supported by IE, so if you want to support IE that is out of the question.As far as I know, and the best way of doing this to keep it simple is to just have a naming convention for your constants like the ever-popular ALL UPPERCASE. There are some examples out there to force constants but they are not worth it for the most part. Alternatively, you could use a function:
This can of course still be overridden but I've seen it used.
Also see:
是的。 但是你删除了 var。 const 替换 var。
Yes. But you remove the var. const replaces var.
Object.defineProperty()
< /a> 创建具有以下默认属性的属性:configurable
当且仅当此属性描述符的类型可以更改并且该属性可以从相应的对象中删除。默认为 false。
enumerable
当且仅当此属性在相应对象的属性枚举期间出现时为 true。 默认为 false。可写
当且仅当与属性关联的值可以通过赋值运算符更改时,才为 true。 默认为 false。如果“常量”是一个对象,您可能还想通过冻结它来使其不可变。
obj =
Object.freeze(obj)
。 请记住,子属性对象不会自动冻结。Object.defineProperty()
creates a property with the following default attributes:configurable
true if and only if the type of this property descriptor may be changed and if the property may be deleted from the corresponding object.Defaults to false.
enumerable
true if and only if this property shows up during enumeration of the properties on the corresponding object. Defaults to false.writable
true if and only if the value associated with the property may be changed with an assignment operator. Defaults to false.if the "constant" is an object you might additionally want to make it immutable by freezing it.
obj =
Object.freeze(obj)
. have in mind that child-property-objects are not automatically frozen.