issues
search
azl397985856
/
fe-interview
宇宙最强的前端面试指南 (https://lucifer.ren/fe-interview)
Apache License 2.0
2.85k
stars
260
forks
source link
【每日一题】– 2019-09-24 - 以下关于Javascript执行引擎描述正确的是
#35
Closed
azl397985856
closed
5 years ago
azl397985856
commented
5 years ago
ECMAScript 2015中规定了执行引擎需要实现EventLoop机制。
V8作为最先进的Javascript执行引擎,可以在执行阶段对所有代码进行优化。
Node.js通过V8实现异步I/O。
Node.js的Buffer类型对象在创建时内存不会分配到V8堆上。
Chakra是Firefox内嵌的Javascript执行引擎。
代码正确的情况下,垃圾回收不会导致有内存无法回收。
azl397985856
commented
5 years ago
错误。 两者没有任何关系
执行阶段,V8会先生成字节码(快),再在运行过程中逐步将高频函数转化成优化后的机器码(慢)。
错误。 V8只是负责解析和运行JS代码。Node.js通过libuv抽象封装层不同平台使用不同方法实现异步I/O,windows是IOCP,*nix是自定义线程池
正确。Node的Buffer模块性能相关部分有C++实现,所以Buffer对象的内存分配不是在V8的堆内存中,而是在Node的C++层面实现内存申请的(Buffer的内存虽然由Node的C/C++层面实现内存申请,但是变量的回收的还是由V8的GC管理的)
错误。Chakra是IE的js引擎,Firefox的js引擎是SpiderMonkey。
错误。这个其实取决于垃圾回收算法的