【发布时间】:2020-04-25 17:33:45
【问题描述】:
我自然认为“const”关键字意味着变量的值不能改变,而当涉及到整数和字符串时,情况似乎就是这样。然而,今天我在看一个视频,有人输入以下内容
const my_list = [];
my_list.push(someValue);
我惊讶地发现这种代码确实有效,因为我假设列表是不变的。所以我的问题是:为什么?如果您还是要更改它,那么将列表声明为常量有什么好处?
【问题讨论】:
-
你不能再做
my_list = ['some other array']。阅读developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… -
变量是常量。不是列表本身。优点是您永远不会失去参考。例如,假设另一段代码使用
const the_list = my_list,那么只要您使用my_list.push,the_list的内容就会更新,但是您会通过执行my_list = my_list.concat(...)来“拆分时间线”。const不允许使用后者。 -
const不会使实际值不可变,它只是意味着您不能将某些东西重新分配给常量。这是有益的,因为它降低了出现错误和意外副作用的风险。
标签: javascript arrays list constants