JavaScript 字符串可变吗

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字符串参考 文章。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程