首页 > 解决方案 > Javascript,当我们为字符串长度等只读数据属性赋值时会发生什么?

问题描述

假设我们有一个字符串,长度是字符串的只读数据属性。如果我们无意中为字符串的长度属性赋值会发生什么?为什么 javaScript 会返回这些值作为结果?

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

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

输出应该是这样的:

4
3

第三行代码返回 3,我的问题是为什么 JavaScript 中的赋值返回操作数的右侧而不是左侧?

标签: javascriptvariable-assignmentreadonly-attribute

解决方案


赋值运算符总是返回右边的值。因此,在 console.log 函数中传递表达式会返回右侧值,在您的情况 3 中。

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

let myString = "Hello,World!";

myString.length = 4;

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

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


推荐阅读