我目前正试图通过引用与值进行交流,据我所知,JS对象通过引用传递。
如果是这种情况,为什么第二个console.log语句不会产生对象属性的大写版本?
任何澄清都会很棒!!!
var string = {
text: 'This is a string inside an object',
};
console.log(string.text);
string.text.toUpperCase();
console.log(string.text);

答案 0 :(得分:3)
String#toUpperCase
方法不会更新原始字符串,只返回大写字符串。因此,您需要通过返回的值更新属性值。
var string = {
text: 'This is a string inside an object',
};
console.log(string.text);
string.text = string.text.toUpperCase();
console.log(string.text);
答案 1 :(得分:0)
.toUpperCase()
不会更改原始字符串,但会返回一个新字符串。
请改为尝试:
var string = {
text: 'This is a string inside an object',
};
console.log(string.text);
string.text = string.text.toUpperCase();
console.log(string.text);
答案 2 :(得分:0)
.toUpperCase();
返回一个大写字符串,但不会修改原始参数
答案 3 :(得分:0)
从下面的MDN链接:JavaScript字符串是不可变的。这意味着一旦创建了一个字符串,就无法对其进行修改。但是,仍然可以基于对原始字符串的操作创建另一个字符串。例如:toUpperCase()
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures
从下面的MDN链接:toUpperCase()方法返回转换为大写的字符串的值。 toUpperCase()不会影响字符串本身的值。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase