永久更改 JavaScript 字符串的正确方法

Correct way to permanently alter a JavaScript string

在Ruby中,如果我想修改一个字符串,让它改变原来的字符串,我可以使用! bang字符。

string = "hello"
string.capitalize!
> "Hello"
string
> "Hello" 

在 JavaScript 中,我找不到这个等价项。将字符串修改为 upperCase 例如 returns 第一个实例之后的原始字符串。

var string = "hello";
string.toUpperCase();
> "HELLO"
string
> "hello"

我知道我可以将它保存为变量,例如

var upperCaseString = string.toUpperCase();

但这似乎效率低下,不符合我的目的。

我知道这一定很明显,但我错过了什么?

JavaScript 传递中的字符串作为值而不是引用存在,所以您明白了:重新分配。

string = string.toUpperCase()

toUpperCase的return值是一个大写的新字符串。如果你想保留它并扔掉原来的,使用这个:

string = string.toUpperCase();

顺便说一句,当在node.js和类似环境的命令行中输入JS语句时,它会打印出每个表达式的计算结果,这就是为什么你只输入[=13=就会看到大写版本的原因]

string.toUpperCase();

正如您推断的那样,这对原始字符串没有影响。

一样将变量赋值给自己
var string = "hello";
string = string.toUpperCase();