Javascript,当我们给只读数据属性赋值时会发生什么,比如字符串长度?

Javascript, what happens when we assign value to read-only data property such as string length?

假设我们有一个字符串,长度是字符串的只读数据属性。如果我们无意中将值赋给长度为 属性 的字符串会怎样?为什么 javaScript return 结果是那些值?

例如,如果我们 运行 这部分代码:

var str="test";
console.log(str.length)
console.log(str.length=3)

输出应该是这样的:

4
3

第三行代码returns 3、我的问题是为什么赋值在javaScriptreturns操作数的右边而不是左边呢?

赋值运算符总是returns右边的值。因此,在 console.log 函数中传递表达式 returns 右边的值,在你的例子中是 3.

为字符串的长度 属性 分配任何值都无效。

let myString = "Hello,World!";

myString.length = 4;

console.log(myString);
// expected output: "Hello,World!"

console.log(myString.length);
// expected output: 12