2024年Web前端最全js内存管理系列篇一:内存分析,2024年最新腾讯前端一面问题

总结

秋招即将开始,校招的朋友普遍是缺少项目经历的,所以底层逻辑,基础知识要掌握好!

而一般的社招,更是神仙打架。特别强调,项目经历不可忽视;几乎简历上提到的项目都会被刨根问底,所以项目应用的技术要熟练,底层原理必须清楚。

这里给大家提供一份汇集各大厂面试高频核心考点前端学习资料。涵盖 HTML,CSS,JavaScript,HTTP,TCP协议,浏览器,Vue框架,算法等高频考点238道(含答案)

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

资料截图 :

高级前端工程师必备资料包

1. 问题一

写了一个for循环,不小心写成了个死循环,发现浏览器卡死了,为什么?这个就是因为不停的循环,变量一直在递增。把内存耗没了。可能大家还不知道什么问题,你都找不到问题在哪。你还以为是下小电影的时候把电脑搞中毒了。

2.问题二

写游戏程序的时候,这个内存问题尤为突出,如果发生了卡顿或者延迟,这个很大几率就是内存不足的问题,我们可能定义了很多全局变量,或者闭包,使用完之后却没有回收,那么它将一直存在于内存中,甚至发生内存泄漏。

3.问题三

喜欢看斗鱼直播或其它直播的朋友,大家是不是有碰到过这个问题?页面看久了忽然崩掉了,需要重新刷新,产生这种问题的原因可能有两个,1是内存持续增加没有去清理,崩掉了。2是flash里的bug 产生的内存泄露。

由此可见,内存是和性能直接相关的,是非常重要的一环。

那我们就来讲一讲内存

内存模型(堆与栈)

js中并没有严格意义上区分栈内存与堆内存。因此我们可以粗浅的理解为js的所有数据都保存在堆内存中。但是在某些场景,我们仍然需要基于堆栈数据结构的思路进行处理。

那么先来讲一讲它的内存空间存储原理

在这里插入图片描述

为什么要把它类比成乒乓球盒子?

这种乒乓球的存放方式与栈中存取数据的方式是一样的。处于盒子中最顶层的乒乓球c,它一定是最后被放进去,但可以最先被使用。而我们想要使用底层的乒乓球I,就必须将上面的4个乒乓球取出来,让乒乓球1处于盒子顶层。这就是栈空间先进后出,后进先出的特点。图中已经详细的表明了栈空间的存储原理。

队列与堆栈

队列: 是一种支持先进先出(FIFO)的集合,即先被插入的数据,先被取出

堆栈: 是一种支持后进先出(LIFO)的集合,即后被插入的数据,先被取出

js数组实现队列和堆栈的功能

//队列 先进先出

let arr = new Array();

arr.unshift(1);

arr.unshift(2);

arr.unshift(3);

arr.pop();

console.log(arr);

//堆栈 先进后出

let arr2 = new Array();

arr2.push(1);

arr2.push(2);

arr2.push(3);

arr2.pop();

console.log(arr2);

队列应用场景

比如说我们常用的QQ 它有一个回收机制大家知道吧,当长时间未登录的时候 就收回去 删掉这个用户 重新拿出来卖钱(一般是靓号) 美滋滋,那肯定是先排序,看谁未登录的时间最长,就先把它干掉 是不是 不可能是我上一秒刚登陆和个靓妹聊天 下一秒就把我干掉了 那我还不报警

这个时候就用队列方法 从前往后面删 我们的数据库存了用户 当库存不下了 也是这么操作的

堆栈应用场景

比如说我们做了一个楼盘预售活动 名额100,报名200个,这个时候也就是从后往前删,先报名的保留。后面报名的逐个删除。

内存分配

总结

秋招即将开始,校招的朋友普遍是缺少项目经历的,所以底层逻辑,基础知识要掌握好!

而一般的社招,更是神仙打架。特别强调,项目经历不可忽视;几乎简历上提到的项目都会被刨根问底,所以项目应用的技术要熟练,底层原理必须清楚。

这里给大家提供一份汇集各大厂面试高频核心考点前端学习资料。涵盖 HTML,CSS,JavaScript,HTTP,TCP协议,浏览器,Vue框架,算法等高频考点238道(含答案)

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

资料截图 :

高级前端工程师必备资料包

  • 16
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值