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

时间:2015-07-02 05:01:55

标签: javascript immutability

在Ruby中,如果我想修改一个字符串并让它更改原始字符串,我可以使用!爆炸字符。

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

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

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

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

var upperCaseString = string.toUpperCase();

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

我知道这一定是显而易见的,但我错过了什么?

3 个答案:

答案 0 :(得分:2)

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

string = string.toUpperCase();
BTW,当在node.js和类似环境的命令行中输入JS语句时,它会打印评估每个表达式的结果,这就是为什么只要输入

就能看到大写版本的原因
string.toUpperCase();

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

答案 1 :(得分:0)

JavaScript传递中的字符串作为值存在,而不是引用,因此您已获得它:重新分配。

string = string.toUpperCase()

答案 2 :(得分:0)

将变量分配给自己,如

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