Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

前端面试回顾 #101

Open
bosens-China opened this issue Nov 17, 2023 · 0 comments
Open

前端面试回顾 #101

bosens-China opened this issue Nov 17, 2023 · 0 comments
Labels
代码人生 和技术无关,人生的感悟

Comments

@bosens-China
Copy link
Owner

bosens-China commented Nov 17, 2023

趁现在有时间稍微总结一下面试的一些问题

one

  • Promise 为什么可以链式调用
  • 如果在.then 返回一个值,这个新的 Promise 状态是什么
  • 如果想要阻止链式调用,让后续的.then 一直暂停状态有哪些方法
  • all 和 allSettled 区别
  • 设计一个调度程序,可以让 Promise 并发执行,但是最多只能有 5 个任务在执行
  • 说一下什么是事件循环
  • nextTick 的实现原理
  • 聊一下 Promise 解决了什么问题,以及相关历史
  • async 和 await 如果要捕获错误需要怎么做,await 可以单独使用吗
  • 项目中使用了那些设计模式
  • 发布订阅模式和观察者模式有什么区别
  • Vue2 的响应式模式是怎么实现的
  • 除了 Promise 还有哪些微任务,以及如果考虑设计一个数据埋点,需要怎么设计

总体在聊 Promise 这块,顺路说了一下 Vue2,不过初次面试还是当时有点紧张有点问题回答不是很好,面试的结果是通过,不过开的薪资跟我目标还是有很大差异,遂放弃。

two

  • 如果要你设计一个低代码,需要考虑哪些问题
  • 如何储存开发的公共组件,使用什么形式来保存,注入到页面中
  • 对于定制化需求,如何进行代码管理
  • 看你写的有关于团队规范的东西,可以简单介绍下吗
  • 聊一下什么是状态机
  • 什么是状态模式

总体没怎么聊技术,可能面试官不是前端有关把。给的薪资还是不满意给拒绝掉了。

three

  • 什么是 BFC
  • 内容盒子和 IE 盒子区别
  • 在开发过程中怎么联调接口的(介绍下如何处理跨域)
  • TypeScript 使用 interface 还是 type 比较多,为什么
  • 怎么实现无痕刷新 token 的
  • 怎么部署产品的,聊一下思路
  • Docker 常见使用命令
  • 如果初始加载需要渲染 3d 模型,但是所需的 vtp 资源比较大,有什么办法可以优化吗

这个也是搞医疗的,不过是做牙医相关的,感觉面试过程挺一般的,这个面试没通过。

four

  • 什么是节流和防抖,什么场景使用,怎么实现
  • webpack 和 rollup 有什么不同,打包的大小体积为什么有区别
  • CSS 重叠样式表,重叠怎么理解
  • Vue 的 diff 和 React 的 diff 有什么不同
  • 虚拟 Dom 是什么,为什么要用虚拟 Dom
  • 为什么很多框架采用无虚拟 Dom,例如 svelte
  • 为什么浏览器只有 body 在界面展示,head 这部分在浏览器中是什么处理的
  • cssos 是什么计算的
  • tc39 关注了那些最新语法
  • 如果后端一直返回数据,需要对 table 进行数据展示要怎么来设计,需要考虑内存储存不够场景
  • 怎么实现组件库的整体引用和分别引用,对于 css 样式怎么来实现呢?
  • 时间切片是什么,为什么 Vue 没有使用
  • React fiber 是什么
  • Vue 为什么有静态提升,React 没有,以及 solidjs 怎么实现的
  • tree Shink 基于什么实现的
  • ESM 和 commonjs 有什么不同
  • webpack tree Shink 和 rollup 有什么不同
  • Vite 和 Esbuild 的关系怎么来理解
  • 什么是 babel,它的作用是什么,以及和 Swc 的区别是什么
  • css 动画为什么比 js 动画流畅

这个面试感觉很多问题没有回答上来,本来觉得都凉了,但是后面通知过了,就感觉还挺有意思。

five

  • 对于一个数组怎么转换为树结构
  • 对于闭包和浅拷贝的理解
  • 节流函数如何编写,后执行
  • React受控组件和非受控组件区别
  • 对于usememo和usecallback你是怎么理解的
  • 对于nuxt14的app和pages有什么区别
  • app下的增量模式有使用过吗
  • app下的img组件要怎么来进行优化
  • 对于nuxt布局方面有了解吗
  • TypeScript和静态语言方面的类型检查有什么不同吗
  • 使用monorepo的形式是什么,为什么这么做
  • 有使用过Lighthouse吗,知道它的原理是什么吗?
  • 对于性能优化你做了哪些措施,让Lighthouse的指标提升50%
  • 有使用过typeScript的验证库吗,可以保证线上运行时和接口返回值的类型一致
  • express的实现原理
  • 对于大文件的优化措施,对于流模式如何保证客户端断开之后继续从初始位置继续下载
  • 对于React的render谈一谈
  • Vue3和Vue2的提升点在于什么地方
  • TypeScript的泛型如何理解
  • TypeScript infercase和type的区别
  • TypeScript的协变和逆变区别
  • Webpack的插件有哪些钩子,是通过什么来管理整理流程的
  • Webpack从打包到构建中间经历了什么
  • nest的健康检查使用过没,对于服务挂了有什么应对措施
  • 使用过mongodb吗是如何编写的
  • 对于脚手架项目你做了哪些,有考虑哪些方面的维度吗
  • 对于项目中TypeScript使用any场景,你们公司有什么规范要求吗
  • 如何避免使用any呢?
  • 谈一谈你做的性能优化方面的举措,从页面加载开始说
  • 对于响应式页面你的做法是什么,如果存在多个项目和一个项目你觉得哪种更合适,需要考虑seo的抓取
  • 了解事件循环机制吗
  • 为什么js是单线程语言
  • Tailwind有使用过吗,你的实践做法是什么

six

  • 深浅拷贝如何实现,对于regexp和data如何处理,以及如何避免死循环
  • 对于前端工程化和基建如何理解,有哪些方面
  • 有实践过ci和监控吗,需要考虑那些指标
  • 如果让你设计一个ui库你要考虑那些方面
  • ui库命名你有什么方案
  • 如果页面出现了卡顿,你会如何排查
  • 函数编程你是如何理解
  • nextjs你了解吗,它有什么吸引你的以及缺点
  • usestate的实现原理
  • useContext了解吗,它有什么不足
  • class组件和函数式的不同
  • 了解react-error-boundary吗,它不能捕捉什么错误
  • 写一个数组去重,输出一个对象,里面是重复次数
  • fiber了解吗,它的出现场景以及契机,如何实现任务调度
  • react如何优化,usememo有什么问题
  • 对于事件队列了解吗,如果在宏任务穿插微任务,这个微任务什么时候执行
  • hooks解决了什么问题
  • 为什么会出现key,以及为什么不能用index做下标

最后

面试过程其实就是查缺补漏的过程,感觉 2023 年对于框架源码以及一个构建工具的实现细节还是要了解很多的。

这里推荐一个介绍范文来聊自己,对于面试通过怎么和公司聊具体的薪资啥的,可以看我之前的文章 如何选择合适的公司?

面试官你好很荣幸参加今天的面试,我叫xxx,毕业于xxx,
距今已经有x年工作经验,擅长React + vue 技术栈,在上家公司担任前端工程师岗位,主要负责其中的xxx和xxx部分的工作,
20xx-20xx年主要在做xx项目,这个项目是结合xxx而出现的,我在里面负责主要开发,以及底层工具的升级优化,最终xxx,
平时还关注前沿技术,对于tc39和新的工具出现第一时间关注,平时还爱好写作,会定期复盘,以上就是我的自我介绍,谢谢。
@bosens-China bosens-China added the 代码人生 和技术无关,人生的感悟 label Nov 17, 2023
@bosens-China bosens-China changed the title 2023前端面试回顾 前端面试回顾 Mar 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
代码人生 和技术无关,人生的感悟
Projects
None yet
Development

No branches or pull requests

1 participant