永久更改JavaScript字符串的正确方法
在Ruby中,如果我想修改字符串并让它更改原始字符串,我可以使用永久更改JavaScript字符串的正确方法,javascript,immutability,Javascript,Immutability,在Ruby中,如果我想修改字符串并让它更改原始字符串,我可以使用爆炸字符 string = "hello" string.capitalize! > "Hello" string > "Hello" 在JavaScript中,我找不到这种等价性。例如,将字符串修改为大写,将在第一个实例之后返回原始字符串 var string = "hello"; string.toUpperCase(); > "HELLO" string > "hello" 我知道我可以将其保存为
代码>爆炸字符
string = "hello"
string.capitalize!
> "Hello"
string
> "Hello"
在JavaScript中,我找不到这种等价性。例如,将字符串修改为大写
,将在第一个实例之后返回原始字符串
var string = "hello";
string.toUpperCase();
> "HELLO"
string
> "hello"
我知道我可以将其保存为变量,例如
var upperCaseString = string.toUpperCase();
但这似乎效率低下,对我来说是不可取的
我知道这一定很明显,但我缺少什么呢?JavaScript过程中的字符串作为值而不是引用存在,所以您得到了它:重新分配
string=string.toUpperCase()
toUpperCase
的返回值是一个大写的新字符串。如果您想保留该文件并扔掉原件,请使用以下命令:
string = string.toUpperCase();
顺便说一句,当在node.JS和类似环境的命令行上输入JS语句时,它会打印每个表达式的求值结果,这就是为什么如果您只键入
string.toUpperCase();
正如您推断的那样,它对原始字符串没有影响。将变量分配给它自己,就像
var string = "hello";
string = string.toUpperCase();
字符串在类似java的javascript中似乎是不可变的。好吧,这就解释了为什么我很难找到等价物。谢谢