前言
随着4月份还有几天的结束,金三银四也要结束了, 小编想综合一次面试题,把大家面试中问的面试题归类总结,于是和参加了面试的小伙伴大致聊了一下面试情况(聊得不多),最后小编把面试题分为了8个方面,每个部分都会带有面试题及部分参考答案,可能涉及到面试题范围小,那么大家遇到的面试题也可以在评论区说说哦,给要参加金九银十的小伙伴们做个参考。
8个面试题方面
(下面题目的🌟代表面试频率出现过多次)
- JavaScript 基础
- Css 以及优化
- vue 或 react 框架相关
- 前端打包等工程化
- 浏览器及常见安全问题相关
- 跨平台技术
- 网络相关
- 少量算法
其中并没有 Html 相关的东西,一方面确实是相关的题目少,另外不会有太难的问题,平时开发时常见的情况基本可以解决。
还有很常见的 nodejs、serverless、GraphQL 等等面试题小编没有总结到,但很有可能出现在你的题目里,相关题目要自行补课哦!
原生 JS 代码
1. JavaScript 实现对上传图片的压缩?
答:读取用户上传的 File 对象,读写到画布(canvas)上,利用 Canvas 的 API 进行压缩,完成压缩之后再转成 File(Blob) 对象,上传到远程图片服务器;不过有时候我们也需要将一个 base64 字符串压缩之后再变为 base64 字符串传入到远程数据库或者再转成 File(Blob) 对象。
思路就是 File + Canvas 的 drawImage
**2. 谈一谈 JavaScript 的异步?**🌟
答: setTimeout、MutationObserver、postMessage、Promise、async、await、generator
从 MutationObserver、postMessage 会牵扯到 vue 的 $nextTick
从 generator 会聊到 co.js 实现
从 Promise 和 setTimeout 会聊到下面要说的事件循环
3. 浏览器和 nodejs 事件循环? 🌟
答:执行栈,promise 是 microTask,set