【问题标题】:Why are constants called "constant variable" in Google Chrome console? [closed]为什么 Google Chrome 控制台中的常量称为“常量变量”? [关闭]
【发布时间】:2021-04-26 11:17:21
【问题描述】:

我注意到,当您尝试更改 const 值时,Chrome 控制台会返回以下错误:

Uncaught TypeError: Assignment to constant variable.

将常量称为“常量变量”有什么特殊原因吗?这对我来说似乎很矛盾。

【问题讨论】:

  • 火狐说invalid assignment to const 'a'
  • 你跑什么来得到那个错误?
  • @ChrisG 我编辑了这个问题,我正在使用 MS Edge。未在其他浏览器中测试过。
  • @Dom const a = 0; a = 20;
  • @Dom 感谢您的回复!如果我使用 var 我不会返回错误。我的问题是关于使用的术语,而不是错误本身。

标签: javascript google-chrome constants chromium


【解决方案1】:

这是因为“变量”是包含值的名称的通用术语,在大多数编程语言中都很常见。

此外,术语“常量”本身可能会造成混淆,因为它通常用于指代原始的文字值,例如 1"foo"

因此,“常量变量”是使用const 语句声明的变量。是的,这是一个矛盾的说法,因为值不能改变。但它在所有其他方面的作用与变量相同。可写变量和常量变量的共同点没有其他通用术语。

【讨论】:

  • 抱歉,我删除了我最初的问题,因为我认为这有点误导。 “真正恒定”意味着一个可变变量。许多编译器将 const 视为可变的,这在我看来是完全错误的。
  • 我没有看到使我的答案无效的问题的更改。转译器无法让 JavaScript 解释器阻止对变量的赋值。
  • 我误解了被问到的答案。你的回答肯定解释了原因。谢谢!
  • 感谢您的回答!作为一个初学者程序员,我期待这样的东西,来自旧编程语言的实际使用。
【解决方案2】:

variable 一词并没有暗示可变性。它可能持有变化值(例如在程序的不同运行期间),但不一定是可分配的。请注意,数学中的 variable 也永远不会改变它的值。

【讨论】:

  • variable 这个词的字面意思是“可以/将会改变的东西”
  • @ChrisG 我不同意。变量可能会改变,但这并不意味着它可以或应该改变。
  • 不,显然不是,因为它是一个常量。但是 let 和 var 都可以并且确实可以改变。在数学中,像y = x² 这样的简单线性方程在任何意义上都不是关于固定值的,但是 x 和 y 是变量,不是吗?
  • @marco-a 抱歉,这在语义上可能是正确的,但实际上,在 JS 的上下文中,这是无稽之谈。您专门使用const 声明一个不会更改的实体,否则使用letvar
  • 形容词“变量”的字面意思是“能够变化”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-17
  • 1970-01-01
  • 2011-03-14
  • 1970-01-01
相关资源
最近更新 更多