Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 据我所知,常量变量是不可变的。这怎么可能呢?_Javascript_Constants_Immutability - Fatal编程技术网

Javascript 据我所知,常量变量是不可变的。这怎么可能呢?

Javascript 据我所知,常量变量是不可变的。这怎么可能呢?,javascript,constants,immutability,Javascript,Constants,Immutability,我也很感兴趣,“this”关键字指的是什么?我不明白这段代码中发生了什么,以前从未见过这样的行为 const var_name = 'abcd'; const n = 120; this[var_name] = n; console.log(this[var_name]) //120 我也是一个初学者,但从片段中我了解到: 'this[var_name] = n;' “this”是一个对象,您已经为对象“this”创建了一个名为“var_name”的属性,并指定了一个常量N的值 总而言之,

我也很感兴趣,“this”关键字指的是什么?我不明白这段代码中发生了什么,以前从未见过这样的行为

const var_name = 'abcd';
const n = 120;
this[var_name] = n;
console.log(this[var_name]) //120

我也是一个初学者,但从片段中我了解到:

'this[var_name] = n;'
“this”是一个对象,您已经为对象“this”创建了一个名为“var_name”的属性,并指定了一个常量N的值

总而言之,

const var\u name='abcd';
this[var\u name]=n;
是完全不同的,因为它将变量与对象进行比较。
希望这能有所帮助:D

我不太确定到底是什么让您感到不安。在您的情况下,
指的是包装此代码段执行上下文的某个对象(可能是
窗口
或任何类似的任意对象)。您的代码的作用-它声明并初始化两个变量,然后将
n
的值赋给名为
'abcd'
(这是
var\u name
的值)的属性。之后,您将该属性的值记录到控制台,该值等于
n
(如您所料)。而语句“…const variables is immutable”并不完全正确,因为您可以执行
const foo={bar:'baz'}
,但仍然可以执行
foo.baz='qux'
或甚至是
foo.bar='qux'
。让我困惑的是变量“var_name”(用“const”声明)的值被“n”(120)突变了.我被教导这是不允许的。你似乎完全不知道上面的代码行到底在做什么。不是吗?如果你附加
console.log(var\u name)
对于以上几行,您可以确保
var\u name
变量没有发生变异,并且它仍然等于
'abcd'
。您是正确的-这就是为什么我在这里问这个问题。就像我之前所说的,我不知道发生了什么。更准确地说,我不知道这一行代码的意思:“this[var\u name]=n;“我知道这指向执行上下文中的某个对象,但我不知道它为什么在var_名称前面,以及var_名称为什么在括号中,这真的很有帮助!!!现在我明白了!!我以为var_名称和这个[var_名称]是同一个变量!