Javascript字符串是不可变的,但按索引重新分配不会引发错误

Javascript字符串是不可变的,但按索引重新分配不会引发错误,javascript,string,Javascript,String,这是密码 let name = 'John'; name[1] = 'a'; name[2] = 'n'; name[3] = 'e'; 我知道Javascript字符串是不可变的。第2行、第3行和第4行行不通,如果我使用console.log(name),输出将是“John”。但是为什么Js没有为第2、3、4行抛出错误呢?在草率模式下,某些类型的故障通常是无声的。在这种情况下,字符串的索引属性是不可写的: console.log( Object.getOwnPropertyDescript

这是密码

let name = 'John';
name[1] = 'a';
name[2] = 'n';
name[3] = 'e';

我知道Javascript字符串是不可变的。第2行、第3行和第4行行不通,如果我使用console.log(name),输出将是“John”。但是为什么Js没有为第2、3、4行抛出错误呢?

在草率模式下,某些类型的故障通常是无声的。在这种情况下,字符串的索引属性是不可写的:

console.log(
Object.getOwnPropertyDescriptor('foo',1)
);