在字符串变量上调用toUmpcase()

时间:2014-11-06 04:50:07

标签: javascript methods

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

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

nextAlpha.toUpperCase();

通过一些创造性测试,我能够确定是导致问题的线。我想也许它实际上并没有更新变量[nextAlpha]的值。我尝试了这个,它起作用了:

nextAlpha = nextAlpha.toUpperCase();

我已经离开了我的其余代码,但是假设已经在我的脚本顶部声明了[var = nextAlpha],我认为这意味着“全局”。有了这些信息,我认为只需在变量上调用方法即可。为什么这不会将字符串“更新”为大写字母,就像我执行额外步骤(重新)将其分配给原始[nextAlpha]字符串一样?

3 个答案:

答案 0 :(得分:2)

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

来自Mozilla参考:

  

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

reference

答案 1 :(得分:2)

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

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

  

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

的操作创建另一个字符串

答案 2 :(得分:1)

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