-
Css 以及优化
-
vue 或 react 框架相关
-
前端打包等工程化
-
浏览器及常见安全问题相关
-
跨平台技术
-
网络相关
-
少量算法
其中并没有 Html 相关的东西,一方面确实是相关的题目少,另外不会有太难的问题,平时开发时常见的情况基本可以解决。
并且因为是从自己的简历来发问,所以有些也很常见的 nodejs、serverless、GraphQL 等等都不在我的面试题里,但很有可能出现在你的题目里,相关题目可以自行补课!
原生 JS 代码
- JavaScript 实现对上传图片的压缩?
答:读取用户上传的 File 对象,读写到画布(canvas)上,利用 Canvas 的 API 进行压缩,完成压缩之后再转成 File(Blob) 对象,上传到远程图片服务器;不过有时候我们也需要将一个 base64 字符串压缩之后再变为 base64 字符串传入到远程数据库或者再转成 File(Blob) 对象。
思路就是 File + Canvas 的 drawImage
可以看看张鑫旭大佬的文章 HTML5 file API加canvas实现图片前端JS压缩并上传
- 谈一谈 JavaScript 的异步????
答:setTimeout、MutationObserver、postMessage、Promise、async、await、generator
从 MutationObserver、postMessage 会牵扯到 vue 的 $nextTick
从 generator 会聊到 co.js 实现,代码不长,意思也好理解,但让我写还真没写出来,建议兄弟们好好看一遍!
从 Promise 和 setTimeout 会聊到下面要说的事件循环
- 浏览器和 nodejs 事件循环????
答:执行栈,promise 是 microTask,setTimeout 是 task
其中很多的阶段,可以从这里看到完整的模型介绍:html.spec.whatwg.org/multipage/w…
需要说出来的点:首先 setTimeout 并没有特殊,也是一个 task。另外每