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

发布于 2024-07-15 12:30:06 字数 164 浏览 5 评论 0原文

我搜索了 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

国产ˉ祖宗 2024-07-22 12:30:06

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

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

function myConst() { return 'myValue'; }

这当然仍然可以被覆盖,但我已经看到它被使用。

另请参阅:

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:

function myConst() { return 'myValue'; }

This can of course still be overridden but I've seen it used.

Also see:

相对绾红妆 2024-07-22 12:30:06

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

const MAXIMUM_VALUE = 100;

Yes. But you remove the var. const replaces var.

const MAXIMUM_VALUE = 100;
倾`听者〃 2024-07-22 12:30:06
Object.defineProperty(window, 'CONSTANT_NAME', {value: CONSTANT_VALUE});

// usage
console.log(CONSTANT_NAME);

Object.defineProperty()< /a> 创建具有以下默认属性的属性:

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

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

  • 可写 当且仅当与属性关联的值可以通过赋值运算符更改时,才为 true。 默认为 false。

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

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

// usage
console.log(CONSTANT_NAME);

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文