认识JavaScript中字符串的不可变性

164 阅读1分钟
  • 字符串的不可变性,意味着一旦创建,它们的值就不能变了。
    "apple" = "banana"; // 语法错误
    
  • 但是可以通过给变量整体赋值,改变变量所代表的字符串。
    let str = "apple";
    str = "banana";
    console.log(str); // 成功改变str的值
    
    • 注意:不能通过str[0] = "a";的形式进行子字符串的赋值,是无效的。
      str[0] = "c";
      console.log(str); // banana (未改变str的值)
      

不可变性在字符串方法上的体现

toUpperCase()

str[0].toUpperCase();
console.log(str); // banana (未改变str的值)

但是可以通过字符串方法(toUpperCase())产生子字符串的副本并赋给新的变量

firstLetter = str[0].toUpperCase();
console.log(firstLetter);
  • 首字母大写
    upperStr = str[0].toUpperCase() + str.slice(1);
    console.log(upperStr); // Banana