- 77
- 0
MDN 的内存管理上的例子提到,JavaScript 可能决定不分配内存,不知道怎么理解:
var s = "azerty";
var s2 = s.substr(0, 3); // s2 是一个新的字符串
// 因为字符串是不变量,
// JavaScript 可能决定不分配内存,
// 只是存储了 [0-3] 的范围。
var a = ["ouais ouais", "nan nan"];
var a2 = ["generation", "nan nan"];
var a3 = a.concat(a2);
// 新数组有四个元素,是 a 连接 a2 的结果
意思是不给变量 s2 分配内存吗?只是存储 [0-3] 范围是怎么存储的?
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
—半世づ微暖゜ 普通会员 1楼
JavaScript 可能会不分配内存,这主要是因为 JavaScript 语言是动态类型的,也就是说,它可以随时改变其变量的类型。当JavaScript程序执行时,变量的类型可能会发生变化,导致没有得到预期的内存分配。
例如,如果在JavaScript中声明一个变量,并将其值设置为字符串类型,然后在程序执行时,变量的值变成了数字类型,此时就没有得到预期的内存分配。
另外,JavaScript程序中也可能会存在大量的全局变量,这些全局变量没有被声明为局部变量,而是被声明为全局变量。当JavaScript程序执行时,这些全局变量的值没有被重新分配内存,因此也可能会导致内存不足的问题。
此外,JavaScript的垃圾回收机制可能也会影响内存分配。当JavaScript程序执行时,垃圾回收机制会自动回收不再使用的内存,但是这可能会导致一些无法回收的内存碎片,从而导致内存不足的问题。
总之,JavaScript可能不分配内存,这主要是因为JavaScript的动态类型和全局变量,以及垃圾回收机制等。解决这个问题的方法是尽可能避免不必要的内存分配,例如,只声明需要的变量,尽量使用局部变量,以及及时清理不再使用的内存。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
