前端面试题1:JavaScript的基本类型和复杂类型是储存在哪的?
解析:基本类型储存在栈中,但是旦被闭包引则成为常住内存,会储存在内存堆中。
复杂类型会储存在内存堆中。
前端面试题2:聊聊如何在JavaScript中实现不可变对象?
解析:实现不可变数据有三种主流的法
1.深克隆,但是深克隆的性能常差,不适合规模使
2.Immutable.js,Immutable.js是成体的套数据结构,性能良好,但是需要学习额外的API
3.immer,利Proxy特性,需学习额外的api,性能良好
前端面试题3:async/await相于Promise的优势?
解析:代码读起来更加同步,Promise虽然摆脱了回调地狱,但是then的链式调也会带来额外的阅读负担
Promise传递中间值常麻烦,async/await乎是同步的写法,常优雅
错误处理友好,async/await可以成熟的try/catch,Promise的错误捕获常冗余
调试友好,Promise的调试很差,由于没有代码块,你不能在个返回表达式的箭头函数中设置断点,如果你在个.then代码块中使调试器的步进(step-over)功能,调试器并不会进后续的.then代码块,因为调试器只能跟踪同步代码的『每步』。
本文收录了一些在Web前端开发面试中经常会遇到的面试题及答案,希望对大家有所帮助,若有所疏漏欢迎指正。