为什么javascript常量关键字在数组中不起作用?

为什么javascript常量关键字在数组中不起作用?,javascript,ecmascript-6,Javascript,Ecmascript 6,推送方法可用,列表[0]=abc也可用 在JS中,const关键字不同于Java或CPP???使用const声明,您不能重新分配变量,但可以对其进行变异,这就是Array.prototype.push方法所发生的情况 你不能像这样做 function home() { const list = ['john', 'adele', 'hary']; list.push('tiger'); return list; } home() //["john", "adele", "hary", "

推送方法可用,列表[0]=abc也可用

在JS中,const关键字不同于Java或CPP???

使用const声明,您不能重新分配变量,但可以对其进行变异,这就是Array.prototype.push方法所发生的情况

你不能像这样做

function home() {
  const list = ['john', 'adele', 'hary']; list.push('tiger');
  return list;
}
home() //["john", "adele", "hary", "tiger"]

文件规定:

常量不能通过重新赋值进行更改 无法重新声明常量
您不会重新分配值,也不会重新声明,因此这是合法的。

可以将项目推送到数组中。 但是,将新数组分配给变量会抛出一个错误-uncaughttypeerror:assignmenttoconstant变量

function home() {
  const list = ['john', 'adele', 'hary']; 
  list = list.concat(['tiger']); // this is reassignment and hence will fail
  return list;
}
home()

没有重新分配!==no mutationList[0]您并没有对整个数组进行变异,只是将值赋给某个索引。再次使用Array.push,您并不是在整个数组中进行变异,只是在数组的末尾添加了一些内容。您可能正在查找
list = ['man','woman']; //ERROR IN YOUR CASE