乐趣区

关于面试:归类总结金三银四前端面试题8个方面让你金九银十收获满满

前言

随着 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,setTimeout 是 task

须要说进去的点:首先 setTimeout 并没有非凡,也是一个 task。另外每次的执行过 task 和 大量的 microtask(不肯定在一次循环全执行完)后,会进行 renderUi 阶段,尽管不是每次事件循环都进行 renderUi,但每次距离,也就是传说中 60hz 的一帧 16ms

nodejs 事件循环略有不同 … 多了 process.nextTick 等

4. 手写 Promise 或者 Promise 的静态方法

答:手写 Promise 尽量写进去 Promise 的状态,静态方法以及 .then.catch。当然更细节的还原能够看 Promise A+ 标准。

静态方法指 Promise.allSettled Promise.all Promise.race 等等。

5. 手写节流与防抖🌟

答:陈词滥调,原理很简略,次要还是看会不会封装函数,以及封装的高级与否,思考的状况是否全面。

6. 手写 bind 函数

答:同上。

7. service worker 应用

答:缓存,渐进式利用,拦挡解决

聊到 worker 可能还会聊到 web worker,shared worder 等等,如果有自信,或者工作对这方面有深刻了解,能够秀一下。能体现出本人的劣势 …

8. 严格模式

答:this 的 undefined,禁止 with,arguments 不容许更改,给只读对象赋值抛异样,变量须要先申明,call,apply 第一个参数不会被转换 …

能答出来一些就行。

9. 原型链以及继承

答:很常问,找个赞数高的解说,看一遍就懂了,记住常考点即可。

10. 正则表达式匹配规定?

答:这个真没方法,只能是对正则表达式的规定进行零碎学习,当然常考的可能是 邮箱,url 匹配。

css 以及优化

1. flex 布局🌟

罕用的 api 和两列、三列布局等等,对于我来说略微有点难度。之前我的项目对兼容性高,根本没怎么用过 flex 布局。没用过的倡议用一用,几个小时就会常见布局了。

2. 优化长列表滚动成果

transition 优化动画成果,分层渲染

前面剖析了一下,能够用 transform 进行强制分层,第二种能够用 content-visibility 将看不见的元素不渲染,设置值为 auto 即可。第三个是对于某些动画成果,能够用 will-change 作用在父元素上进行 gpu 减速,应用后删掉。

3. 响应式布局 🌟

答:可能会波及 css 函数,rem/em 区别,媒体查问 …

4. 什么是 BFC?

答:块级格式化上下文,我布局总用!

问:什么会造成 BFC?它的作用是什么?

答:

  • body 根元素
  • 浮动元素:float 除 none 以外的值
  • 相对定位元素:position (absolute、fixed)
  • display 为 inline-block、table-cells、flex
  • overflow 除了 visible 以外的值 (hidden、auto、scroll)

vue 或 react 框架相干

  1. vue 响应式原理以及双向绑定实现代码 ? 🌟
  2. vue3 响应式原理,有什么不同?
  3. vue 的 diff 算法思路,怎么比照节点?
  4. vue 的 compile 实现?🌟
  5. vue 如何自定义指令?具体的 api 写法?
  6. vue3 对于 vue2 在性能上的优化(从 compile 和 runtime 两方面)?
  7. react 有什么不同?理解 hooks 吗?

8. 用过 TypeScript 吗?有什么长处,为什么用?具体的场景,应用 TypeScript 进行类型定义。

答:vue 我的项目多,ts 用的少,也用过,写前端监控 sdk 时,对接口进行类型校验,它像一个文档,每一个接口都有定义,前面再翻看霎时了解意思。(强类型益处还有很多,然而集体感觉写起来超级麻烦,当然有人很喜爱很爽。)

  1. vue 的 keep-alive 应用场景,以及原理?🌟

前端打包等工程化

  1. webpack 和 rollup 应用?
  2. tree-shaking 原理?🌟
  3. webpack loader 和 plugin 怎么写?
  4. 你对 vite 相熟,和 webpack 区别?
  5. 给 vite 做的奉献和在理论我的项目的应用?
  • vite-electron-quick Git 地址
  • 代码被 merge 的 pr 历史

浏览器及常见平安问题相干

  1. 浏览器页面加载过程,越具体越好 🌟
  2. 浏览器缓存 🌟
  3. 跨域问题及解决 🌟
  4. v8 快数组慢数组,hidden class 或者其余模块?

5. xss 和 csrc 的意思?如何防备? 🌟

答:美团的两篇文章摆出来,面试官间接问下一题!

  • xss 防备
  • csrf 防备

跨平台技术

  1. electron 应用,如何实现小托盘性能?
  2. flutter 的 widget stateFullWidget stateLessWidget 区别?
  3. js Bridge 的原理?🌟
  4. flutter 的渲染引擎?

网络相干

  1. dns 相干,dns 服务器是什么,如何查问 dns 的?🌟
  2. Oauth2.0 和 jwt 单点登录等
  3. http/https 区别?为什么 https 更平安一点?https 为什么也不是非常平安?
  4. http1.x 和 http2.0 的区别?http2.0 长处,以及某些状况会比 1.x 速度更慢?
  5. https 加密原理?
  6. http2.0 压缩头,以及并行申请原理?
  7. tcp 的连贯形式?

大量算法

  1. 回文串,核心扩散法
  2. 冒泡,快排 🌟

3. 二分查找 🌟

4. 二叉树 🌟

5. 动静布局



须要完整版前端面试题总结 - 综合问题的 PFD 材料的小伙伴们,请点击这里自行获取哦

总结

  • 框架原理真的深刻某一部分具体的代码和实现形式时,要多留神到细节,不要只能写出一个框架。
  • 算法方面很单薄的,最好多刷一刷,不然影响你的工资和成功率😯
  • 在投递简历之前,最好通过各种渠道找到公司外部的人,先提前理解业务,也能够帮忙前期优良 offer 的决策。
  • 要敢于说不,对于某些 offer 待遇不称心、业务不喜爱,应该置信本人,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要谨慎抉择!!!

小编这个只是做了小小的归类总结,不够全面,大家有遇到的奇葩的、印象粗浅的等面试题也欢送打在评论区哦。喜爱这篇文章文章的小伙伴们 点赞 + 转发 反对,你们的反对是我最大的能源!

退出移动版