笔试(40min)
到前台签到后会给一张A4纸,上面有题目,用笔作答。
10道题,限定时间40分钟完成。因为太久没拿笔写字的缘故,写的手很酸,字也歪歪扭扭的。
题目比较基础,不算难,不过我正则不太行,有道正则的题没答上来...
-
Object的内置对象有哪些,列举4个
-
比较
foreach,map,reduce区别 -
异步输入输出结果
-
=== 输出结果(考察
NaN === NaN的输出结果) -
变量输入输出结果(主要考察作用域以及
argument.callee.caller的作用) -
如何理解浏览器的事件代理(事件委托)
-
正则表达式题目:提取某个url中的id,如:
https//aaa.com/xxx/ID123123123/xxx,提取ID123123123,ID固定,后面固定位数,可能有大写英文和数字 -
手写代码:手写防抖
-
手写代码:手写
compose函数
还有一道题忘记了,印象不是很深,应该也是比较基础的题目。
技术面试(约1h)
-
自我介绍 + 询问项目概况(团队规模、项目介绍、个人贡献)
-
JS基础:
-
原型链、
__proto__的取值 -
作用域链、变量查找过程
-
定义变量
a = 1,使用ESM导入某个文件中的一个函数。函数内部打印a,如果被导入文件中存在a = 2,输入结果是什么 -
执行上下文执行栈的工作流程,什么时候入栈/出栈
-
eventloop: 宏任务/微任务有哪些,执行过程 -
对JS单线程的理解,有没有使用过
Worker -
有没有使用过
Set和Map;Object和Map区别
-
-
网络:
-
304状态码含义、强缓存/协商缓存对应请求头 -
memory cache和disk cache的区别/使用场景
-
-
Vue:
-
使用过
vue2吗 -
Vue3的toRef和Ref,Ref对象解构是否会失去响应式 -
组件的初始化过程做了哪些事情
-
有没有用过
Teleport,使用场景 -
一个好的组件应该是怎样的(单一职责、开放封闭、类型完备)
-
-
开放题:最有成就感的事情是什么
感觉面试官基础还是很扎实的,对于JS基础会抠各种细节发问。总体体验上是不错的,也得到一部分需要提升的知识点反馈。
问题复盘
本次面试总体来说考察的非常基础,不过我个人还存在如下问题,需要改善:
-
正则表达式没怎么写,平时开发也是让AI生成,导致笔试写不出来
-
Worker回答的有问题,创建Worker是在主线程之外创建独立的线程来执行任务,从而避免阻塞主线程。答成进程了... -
事件循环部分需要再深入看一下:www.zhihu.com/tardis/bd/a…
-
memory cache和disk cache的区别/使用场景:juejin.cn/post/748787… -
关于
argument.callee(已弃用的特性还考...想不通):developer.mozilla.org/zh-CN/docs/…