今天去腾讯面前端一面
来源:4-27 总结
圣歌奏
2018-03-27
一上来两个问题我就懵了,谈谈你对chrome v8引擎垃圾回收机制的理解?以及实现原理?js内存泄漏的有关场景?
不是说好的一面面基础的么
写回答
1回答
-
双越
2018-03-28
“一面只面基础”的意思是要求基础知识牢固,不代表面试官会提问一些有深度的问题来发掘一下候选人的潜力。以我的理解,如果你其他的基础知识回答的没问题,这种提高型的问题不会,不影响你的面试结果。
分析一下这个题目,作为前端我们肯定做不到去解读 v8 引擎的源码和 C++ 的,业界也号称 v8 的代码写出来不是为了读的,就是为了提高 JS 运营效率,可见 v8 的设计有多复杂。他这个题目考察的其实就是 JS 常见的场景中哪些会泄露内存、哪些不会泄露内存(能正常回收)
JS 中泄露内存最经典的场景就是闭包,闭包中的数据是不会被垃圾回收的,如果一直往里加,数据会越累越多。另外的场景,例如未及时清理的队列等,这些比较常见了。除了这些之外,其他的例如正常执行的函数,里面的变量在函数返回之后都会被 v8 自动垃圾回收,不会导致内存泄露。
因此,再遇到这种问题,按照我说的回答。不保证满分,但起码也及格。
00
相似问题