码迷,mamicode.com
首页 > Web开发 > 详细

js中的string是只读的!!!

时间:2019-12-12 13:22:38      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:基本   语言   alt   ima   自己   爸爸   mamicode   img   技术   

今天写排序的时候没看到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是只读的!!!

标签:基本   语言   alt   ima   自己   爸爸   mamicode   img   技术   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!