【问题标题】:Javascript: Questions about using "Const," for lists and objectsJavascript:关于对列表和对象使用“Const”的问题
【发布时间】: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.pushthe_list 的内容就会更新,但是您会通过执行my_list = my_list.concat(...) 来“拆分时间线”。 const 不允许使用后者。
  • const 不会使实际值不可变,它只是意味着您不能将某些东西重新分配给常量。这是有益的,因为它降低了出现错误和意外副作用的风险。

标签: javascript arrays list constants


【解决方案1】:

当你用字符串/数字/布尔变量分配变量时,变量包含字符串/数字/布尔值,但是你用对象或数组变量分配变量时包含该对象/数组在“内存”中的地址。然后你推送数组中的某些东西变量的值仍然是内存中数组的相同地址,这就是为什么你不会出错

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    相关资源
    最近更新 更多