JavaScript 字符串可变吗
JavaScript 字符串 是 不可变的 ,因为一旦创建了一个字符串,它将在内存中接收一个引用,并且其值将永远不会改变。这意味着对字符串的任何操作都可能返回一个新的字符串而不会改变原始字符串。
有一些误解,即字符串可以转换为大写或小写,但实际上,如果我们将这些方法应用于字符串,原始字符串不会改变,而是返回一个应用了更改的新字符串,可以存储在一个新变量中。因此,通常情况下,如果我们在一个字符串上使用任何String方法,将返回一个新的String对象。
让我们看几个例子,证明字符串的不可变性
例1: 该示例使用方法尝试操作一个字符串。在此示例中,如果字符串是可变的,则应该将“Hello GFG”中的“Hello”替换为“Bye”关键字,但事实上并非如此。
Javascript
let str = "Hello GFG";
str.replace("Hello", "Bye");
console.log(str)
输出: 尽管对字符串应用了replace方法,但它仍未发生改变。
Hello GFG
示例 2: 这个示例尝试使用索引来操作一个字符串。如果字符串是可变的,那么 Hello GFG 应该变成 Gello GFG,但实际上并没有发生变化。
JavaScript
let str = "Hello GFG";
str[0] = "G";
console.log(str);
输出: 这种情况下操作失败,字符串保持不变。
Hello GFG
示例3: 此示例使用字符串操作来存储字符串的操作内容。同样,在这里,新的小写转换字符串将被存储在一个新变量中。
Javascript
let str1 = "Hello GFG";
let str2 = str1.toLowerCase();
console.log(str1);
console.log(str2);
输出: 从这个例子中可以清楚地看出,字符串操作会导致创建一个新的字符串对象,可以将其存储在另一个变量中。
Hello GFG
hello gfg
我们有一个完整的JavaScript字符串方法和属性列表,请查看此 JavaScript字符串参考 文章。