Javascript 为什么常量被称为“常量”;常量变量;在谷歌浏览器控制台?

Javascript 为什么常量被称为“常量”;常量变量;在谷歌浏览器控制台?,javascript,google-chrome,constants,chromium,Javascript,Google Chrome,Constants,Chromium,我注意到,当您尝试更改常量值时,Chrome控制台会返回以下错误: Uncaught TypeError: Assignment to constant variable. 将常数称为“常数变量”有什么特殊原因吗?对我来说,这似乎是自相矛盾的。这是因为“变量”是一个通用术语,表示一个包含值的名称,这在大多数编程语言中都很常见 此外,术语“常量”本身可能会令人困惑,因为它通常用于指原始的文字值,如1和“foo” 所以“常量变量”是用const语句声明的变量。是的,这是一个矛盾修饰法,因为价值不能

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

Uncaught TypeError: Assignment to constant variable.
将常数称为“常数变量”有什么特殊原因吗?对我来说,这似乎是自相矛盾的。

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

此外,术语“常量”本身可能会令人困惑,因为它通常用于指原始的文字值,如
1
“foo”

所以“常量变量”是用
const
语句声明的变量。是的,这是一个矛盾修饰法,因为价值不能改变。但它在所有其他方面的作用与变量相同。对于可写变量和常量变量所共有的东西,没有其他通用术语。

这是因为“variable”是一个通用术语,用于表示保存值的名称,对于大多数编程语言来说都是通用的

此外,术语“常量”本身可能会令人困惑,因为它通常用于指原始的文字值,如
1
“foo”



所以“常量变量”是用
const
语句声明的变量。是的,这是一个矛盾修饰法,因为价值不能改变。但它在所有其他方面的作用与变量相同。对于可写变量和常量变量所共有的东西,没有其他通用术语。

关于这个术语的任何内容都不意味着可变性。它可以保存不同的值(例如,在程序的不同运行期间),但不一定是可分配的。请注意,数学中的a也不会改变它的值。

关于该术语的任何内容都不意味着易变性。它可以保存不同的值(例如,在程序的不同运行期间),但不一定是可分配的。请注意,数学中的a也不会改变它的值。

Firefox说
对const'a'的赋值无效。
你运行什么来得到这个错误?@ChrisG我编辑了这个问题,我使用的是MS Edge。没有在其他浏览器中测试过。@Dom
const a=0;a=20@Dom-Thans,谢谢你的回复!。如果我使用var,我不会返回错误。我的问题是关于所使用的术语,而不是错误本身。Firefox说
对const'a'的赋值无效
您运行什么程序来获得该错误?@ChrisG我编辑了这个问题,我使用的是MS Edge。没有在其他浏览器中测试过。@Dom
const a=0;a=20@Dom-Thans,谢谢你的回复!。如果我使用var,我不会返回错误。我的问题是关于使用的术语,而不是错误本身。术语
variable
字面意思是“可以/将会改变的东西”@ChrisG我不同意。变量可以更改,但这并不意味着它可以或应该更改。不,显然不可以,因为它是常量。但是let和var都可以而且确实改变。在数学中,像
y=x²
这样的简单线性方程在任何意义上都不是关于固定值的,但是x和y是变量,不是吗?@marco-a抱歉,这在语义上可能是正确的,但实际上,在JS的上下文中,这是胡说八道。你特别使用
const
来声明一个不会改变的实体,否则使用
let
var
来声明。形容词“变量”字面意思是“能够改变”。术语
variable
字面意思是“可以/将要改变的东西”@ChrisG我不同意。变量可以更改,但这并不意味着它可以或应该更改。不,显然不可以,因为它是常量。但是let和var都可以而且确实改变。在数学中,像
y=x²
这样的简单线性方程在任何意义上都不是关于固定值的,但是x和y是变量,不是吗?@marco-a抱歉,这在语义上可能是正确的,但实际上,在JS的上下文中,这是胡说八道。你特别使用
const
来声明一个不会改变的实体,否则使用
let
var
来声明。形容词“variable”字面意思是“能够改变”。对不起,我删除了我最初的问题,因为我认为这有点误导。“真常量”指可变变量。在我看来,许多Transpiler把const当作是可变的,这是完全错误的。我看不出这个问题有任何改变会使我的答案无效。Transpiler无法将JavaScript解释器块分配给变量。我误解了所问的答案。你的回答清楚地解释了原因。非常感谢。谢谢你的回答!作为一名初级程序员,我期待着类似这样的东西,来自旧编程语言的实际使用。对不起,我删除了我最初的问题,因为我认为它有点误导。“真常量”指可变变量。在我看来,许多Transpiler把const当作是可变的,这是完全错误的。我看不出这个问题有任何改变会使我的答案无效。Transpiler无法将JavaScript解释器块分配给变量。我误解了所问的答案。你的回答清楚地解释了原因。非常感谢。谢谢你的回答!作为一名初级程序员,我期待着类似的东西,来自于旧编程语言的实际使用。