gpt4 book ai didi

javascript - 在 JavaScript 中声明一个 const 有什么意义

转载 作者:行者123 更新时间:2023-11-29 21:20:08 25 4
gpt4 key购买 nike

我一直认为 JavaScript 中的 const 变量应该是常量...就像“不能改变的变量”。
所以我一直认为使用 const 而不是 let/var 的好处类似于减少资源使用。
但经过快速测试后,它看起来像一个 const 几乎像一个 let 变量。它是 block 范围的并且可以修改......至少在我的浏览器(Firefox 47.0)中是这样。

这是我做的:

const FOO = [0,1,2]
FOO[0] = 11
console.log(FOO) // > [11, 1, 2]

这引出了我的问题:使用 const 有什么意义?我的意思是这个词更长,很多人不知道 const,它看起来就像一个普通变量。那么,为什么我会产生它不是的错觉呢?为什么我们不继续将常量写成 let/var,名称全部大写?

最佳答案

简单来说,对象/数组的值不会改变,您只是在改变对象的属性。演示:

const FOO     = {};
FOO.something = 'foo'; // [legal] mutating the object, but still the same object
FOO = {}; // [illegal] attempt to assign new object

在学习 const 和其他基本类型时,使用对象就没那么简单了:

const FOO     = 1;
FOO = 2; // [illegal] attempt to assign new value
FOO = []; // [illegal] attempt to assign new value

要回答这个问题,const 不是必需的。这是编程的一种奢侈,可以防止程序员搬起石头砸自己的脚。

它是一种语法糖,有助于保护值并与维护者交流想法,但多年来,JavaScript 开发人员在没有它的情况下也能很好地编程。它只会通过帮助更早地检测和防止错误并加强某种一致性来帮助语言变得更加精致。

随着应用程序/模块变得越来越复杂,对解释器/转译器帮助的需求变得越来越重要,而 const 在那里可以带来巨大的好处。


另外值得注意的是,还有其他额外的好处。 JavaScript 引擎在使用常量时效率更高。虽然性能提升可能微乎其微,但一些非常密集的应用程序必须尽可能多地释放资源。

比较容易想到为流行的变量设置常量:

const PI           = 3.1415926535;
const E = 2.71828;
const GOLDEN_RATIO = 1.61803398874;
const GRAVITY = 9.807;

按照惯例,我使用全部大写来区分全局变量和常量。

关于javascript - 在 JavaScript 中声明一个 const 有什么意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38750029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com