对字符串变量调用toUppercase()

Calling toUppercase() on a string variable

本文关键字:toUppercase 调用 字符串 变量      更新时间:2023-09-26

我是一个初学者,刚刚成功地解决了我的代码问题。我很高兴我找到了它,但它花了我很长时间。我希望知道为什么会发生这种事。

这是有缺陷的原始代码。假设变量[nextAlpha]已经被分配了一个字符串值:

nextAlpha.toUpperCase();

通过一些创造性的测试,我能够确定是线路引起了问题。我想也许它实际上并没有更新变量[nextAlpha]的值。我试了一下,结果成功了:

nextAlpha = nextAlpha.toUpperCase();

我已经省略了其余的代码,但假设[var = nextAlpha]已经在脚本的顶部声明,我认为这意味着"全局"。有了这些信息,我认为只需对变量调用方法就足够了。为什么不像我执行额外步骤将字符串(重新)分配给原始[nextAlpha]字符串时那样,将字符串"更新"为大写?

toUpperCase将转换后的字符串作为新对象返回,它不会对nextAlpha执行转换。

来自Mozilla参考:

toUpperCase方法返回转换为大写的字符串的值。toUpperCase不会影响字符串本身的值。

参考

在JavaScript中,字符串是不可变的:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures

与C等语言不同,JavaScript字符串是不可变的。这意味着一旦创建了一个字符串,就不可能对其进行修改。但是,仍然可以根据对原始字符串的操作创建另一个字符串

toUpperCase()是一个函数(因此返回一个值)而不是一个属性(影响变量本身)