首页 > Web开发 > 详细

js中的string是只读的!!!

时间:2019-12-12 13:19:02      阅读:94      评论:0      收藏:0      [点我收藏+]

今天写排序的时候没看到string有sort方法
然后就打算自己实现快排,
想当然地觉得string能迭代就把它当作了array,跟其它语言搞混了...
比如str = "bca",str[0] = str[1],结果肯定不会变的 =_=,str依然是"bca"
所以我的排序爆栈了...被自己蠢到了...

此时突然回忆起一句话,ECMAScript规定string不可变,
也就是说我们平时看到的字符串拼接、字符串修改,都是踢走正主后的篡位小人
比如str = "Java", str += "Script"

  • 首先创建能容纳10个字符的字符串
  • 然后将"Java"和"Script"填充进去,变成"JavaScript"
  • 最后销毁"Java"和"Script"这两个字符串

最后又想起一句话,基本数据类型保存值 → 内容在栈中,引用数据类型保存地址 → 内容在堆中

至于为什么能迭代,浏览器爸爸实现的迭代器吧(T T), 所以字符串是只读的, 你可以用迭代器去读每一位,但你就是不可以改它
技术分享图片
技术分享图片

不经意间就忘掉了基础知识...

js中的string是只读的!!!

原文:https://www.cnblogs.com/xw172854/p/12028354.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!