js 堆与栈

2024-02-15 17:12:01

主要用来存放对象。当创建个对象时,这个对象就会被存放在堆里,返回个指向该对象的引用。当我司对这个引用进行操作时,实际上就是在操作堆里的对象。

主要用来存放原始类型的数据,如number, string, boolean等。每声明个变量,这个变量都会被直接保存在栈里。

在高精度维建模及打印服务中可能会涉及到大量的D模型数据,这些数据通常是以对象的形式存在的,因此会被存储在堆中在处理这些数据的过程中,会声明些临时变量来辅助计算,这些变量则会存储在栈中。

在动漫游戏开发中,同样大量使用到堆和栈。游戏角色的状态信息、场景的配置信息等都可能会以对象的形式存在堆中,而游戏逻辑中的各种计算和判断则可能会用到栈。

对于安全来说,堆和栈都有着重要的作用。攻击者通过溢出攻击的方式来破坏栈的内容,达到执行恶意代码的目的。因此通过各种手段来保护栈的安全,栈 Canary、地址空间布局随机化等。

在论坛开发中,用户的个人信息、发帖内容等可能都以对象的形式存储在堆中。而论坛的业务逻辑,用户登录、发帖、回帖等,则可能会涉及到栈的使用。