首页 > 解决方案 > 如果没有发生替换,javascript字符串替换是否会创建一个新字符串?

问题描述

    let s = 'ABC';
    s = s.replace('D', 'E');

在此之后是否是s相同的字符串(在内存方面,而不是它的值)?

根据 MDN,它说返回值为 A new string, with some or all matches of a pattern replaced by a replacement.,但我想知道“NO”匹配的特殊情况是否会返回原始字符串而不创建新字符串。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

标签: javascriptstring

解决方案


字符串在 Javascript 中是不可变的,因此该变量现在将指向内存中具有新值的新引用。然而,在被垃圾回收之前,之前的值仍将存在于内存中的旧位置。


推荐阅读