京东二面面试官很有水平啊,考察点特别细致。手撕很简单,但他水平之高也体现在这个环节。
又是收获颇丰的一集
1.为什么选择前端
2.没接触过后端为啥选了前端
3.前端和后端是什么关系,怎么更好的合作
4.vue和react使用体验差异
5.react的hooks和vue的组合式api有些共同之处,是希望达到什么效果(这个不知道咋对比,只能知道啥说啥了)
6.vue2到vue3为什么要从选项型api变成组合式api?
7.react为什么要从类组件变成函数组件?
8.怎么理解微前端?
9.iframe也算是一种微前端框架,使用iframe有什么问题
10.还有哪些隔离方案(沙箱隔离)
11.不同微前端方案的对比
12.eval和new function有啥差别吗
13.模块联邦是一种微前端方案吗?(没听说过。。)
14.如何学习前端
15.书本在你的学习路径中是什么位置
16.开发过程中报错怎么排查问题
17.ai在开发过程中的角色如何看待
18.目前的情况下程序员的价值在哪里
手撕:
你说他写,这就会考察你对整个代码书写以及执行的细节。
根据传入的boolean值,模拟20~50ms的延迟,输出promise(根据传入的值判断是fulfilled还是rejected)
这个题很简单,但是面试官牛逼之处在于,他会去考你如何优化。最基本的方案就是在Promise里设置定时器,然后执行reslove或reject。
面试官首先将题目进行拆解:
1.生成随机数
2.模拟延时
3.输出结果
最后代码就变成了:将生成随机数作为一个共用方法提出,模拟延时和输出promise分开,并且内部用三元表达式去简化。
整体来说,业务逻辑和数据处理逻辑完全分离,在代码量比较大的情况下,更好快速定位和问题排查,真的很牛逼
延伸问题:
1.ts文件如何执行调试(tsc)
2.any unknown never的区别
3.interface和type的区别
接下来考察细节,在这里感觉要碎了:
1.package.json中的script部分是干嘛的
2.script有个dev,dev后面配置的是vite,这个vite哪里来的,如何运行起来的
3.devdependencies和dependencies的区别
4.如果把这两块的东西都写到devdependencies或dependencies里面有什么区别
5.(我回答了部署的时候devdependencies里的东西项目用不到)用不到是什么意思?部署是哪种部署,纯前端还是node
6.编译完的dist和node_modules有啥关系吗,部署的是dist,node_modules会部署吗
7.我写的代码里用到的依赖跟写在devdependencies或dependencies有关系吗
8.pnpm-lock是什么
面试官说,当我们安装一个包的时候,只会安装他的dependencies,不会安装devdependencies,好家伙,学到了
这套一出来,都不需要问什么webpack了,大概就知道我的工程化知识就是一坨
真给我学到知识了
#京东##软件开发笔面经#
#前端##秋招#