web 前端工程师面试记录
转眼间从事 web 前端的工作也快两年了。然而 web 前端纷繁复杂,发展日新月异;计算机的知识更是博大精深。
自己所掌握和了解的知识点也很有限,平时写业务代码时也很少用到,唯有把面试中遇到的问题记录下来,以期将来有用 :)。
DOM 相关
盒模型
盒子由 margin border padding content 4部分组成。box-sizing 为 content-box 的时候 width 为 content 的宽度,border-box 亦然。
padding 会填充上对应的背景颜色,width: 100%
时,宽度为所在容器的宽度。
实现常见布局
css 苦手,只能看平时的积累了。简单的三列布局可以用 float 实现。
框架相关
vue 响应式原理
对 vue 来说,响应式的关键为 Object.defineProperty , get 的时候收集依赖项,set 的时候更新依赖项。
网络相关
同源跨域
协议、域名、端口号。常见的允许跨域的有 script link img。
jsonp
jsonp 是很老的技术了,为了解决跨域的问题才出现的。需要传递 callback 的名字才可以正常执行。
tcp
三次握手,四次分手,通过滑动窗口和序号实现重新排序。
js相关
作用域链、原型链、对象、this
理解还是能理解的,不过面试题都有各种神奇的陷阱,随缘😊。
异步模型
- macrotask 队列中执行一个 task
- microtask 队列中执行所有 task
- 线程跳回 1
用 call 或 apply 实现 bind 函数
喜闻乐见的一道面试题。
考察了 this,作用域链,原型链,函数参数等一系列知识
promise
promise resolve 为 microtask。
工程化
性能优化
需要从网络、渲染、js 等各个方面来优化
一些相关的考题
- 有序数组 merge 去重
- 实现 throttle 函数
- sort 方法随机化数组,真的随机吗
编程能力相关
算法题
反转链表 反转二叉树 合并区间
编程思想
设计模式,发布订阅模式
评论