永久更改 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();
在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();