javascript - 如果没有发生替换,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
解决方案
字符串在 Javascript 中是不可变的,因此该变量现在将指向内存中具有新值的新引用。然而,在被垃圾回收之前,之前的值仍将存在于内存中的旧位置。
推荐阅读
- javascript - 如何在 Storybook 中模拟 Next.js Image 组件?
- c++ - 为什么以下嵌套循环没有按预期工作?
- ios - 如何在 SwiftUI 中使用 UIViewRepresentable 更改 UITextField 中的宽度?
- python - 在枕头中将 gif 转换为 webp 仅保存第一帧
- reactjs - React 有没有办法在项目外部使用任何变量,以便 Docker 在构建 React 项目后从缓存中构建它?
- javascript - 如何返回文档数据 Firebase 数据库?
- spring-mvc-test - Spring mvc 测试用例,请求标头中带有字符串,多部分文件作为 post 请求的请求参数
- c++ - 两个日期之间的秒数,包括闰秒
- java - 在 startActivityForResult 之后显示 toast
- javascript - Chart.js 条形图鼠标悬停突出显示所有数据集,而不仅仅是选定的数据集