记一次高级前端开发工程师面经
↓推荐关注↓
大前端技术之路
分享Web前端,Node.js、React Native等大前端技术栈精选
Official Account
前言
#面试挺累人的,每天下班后赶回家饿着肚子面试,面了将近一个月,大概就一个中厂的水平吧。面试完最好进行一个复盘,查漏补缺。
一、携程
-
对着简历问一遍 -
rem, 计算出375的屏幕,1rem,单位出现小数怎么处理 -
javascript精度问题的原因 -
axios用途 -
性能优化的点,webpack分包,首页资源大小,请求优化,gzip之前还是之后,React重新渲染 -
国际化站点,cdn, 在页面什么阶段加载国际化文件,如果有20多个语言该怎么做 -
ssr有没有用过 -
项目中websocket是解决了什么问题 -
DOM, BOM, js的关系 -
React dom绑定事件,与原生事件有什么区别 -
http2多路复用
代码题
if (!('a' in window)) {
var a = 1;
}
console.log(a);
var a = {}; var b = {}; var c ={};
console.log(a === b);
console.log(b === c);
console.log(a === c);
var d = e = f = {};
f = {}
e = f
d = e
console.log(d === e);
console.log(d === f);
console.log(e === f);
米哈游:
-
http状态 301,302, 304,缓存相关字段 -
cookie、ws是否跨域 -
触发bfc的方式 -
rem和vw的使用场景 -
伪代码实现下懒加载
某外企:
一、
-
下面函数是闭包吗?
const func = ()=> {
const a = '111'
const fun2 = ()=> console.log(a)
return ()=> console.log('_')
}
const next = func()
'12345'.split('')
上述代码发生了什么
下面代码打印的是
console.log("12345" instanceof Object);
-
实现一下some, every
-
flatten实现
-
const promise = new Promise(resolve => {
console.log("11111");
setTimeout(() => {
console.log("22222");
}, 0);
resolve();
console.log("resolve");
throw new Error("error");
console.log("error");
});
promise
.then(
() => {
console.log("33333");
setTimeout(() => {
console.log("44444");
}, 0);
},
() => {
console.log("reject");
}
)
.catch(() => {
console.log("catch");
});
console.log("55555");
-
函数组件怎么阻止重复渲染
二、
-
AST作用 or babel实现原理 -
实现自定义hooks,usePrevious。setcount(count => count + 1)后输出上一次count的值
美团:
一、
-
自我介绍中提到了性能优化, 说了说性能优化的点 -
不同域名共享cookie -
on, emit, 实现 -
防抖的实现 -
输入url到页面返回结果 -
缓存的实现方式 -
React组件重复渲染 -
webpack分包
字节:
一、
-
Webpack 插件,生命周期 -
umi约定式路由怎么实现的 -
babel实现远原理 -
React ref -
fib实现,如何优化
盒马:
一、
-
说出你最擅长的部分,追问 -
webpack拆包的依据。1.被多个模块使用,cache起来 2.资源过大 -
canvas 点击线段事件。重合区域怎么处理 -
webWorker的使用:为什么不在worker里面发出请求,做数据转换呢?
太美医疗:
-
generate函数和async区别 -
webpack插件实现
叮咚买菜:
一、
-
Vue, React使用情况 -
父子组件的mounted 调用顺序 -
$nextTick实现原理 -
子元素水平垂直居中 -
斐波那契数列如何优化 -
业务题:封装一个全局的弹窗,在任何组件内都可以调用。追加:如何同时打开5个弹窗,关闭顺序又如何
二、
-
封装Vue插件 -
5个弹窗 -
$nextTick原理 -
手机号码分割 _ _ _ - _ _ _ _ - _ _ _ _ -
最大字符串数, “abcdabcda” 求最长的不重复字符串 -
兄弟组件通信 -
vuex 模块化怎么做 -
不同域名如何共享cookie
总结:
对于3~5年的前端开发来说,不应该仅仅是停留在会用API的层面,至少要关注到你使用的技术的一些原理实现。这也是大厂考察候选人钻研精神吧,相对来说有一个区分度。个人建议最好精通一个方向,比如:
-
前端工程化,webpack, babel, Node 等。 -
精通框架源码 -
可视化,3D方向 -
流媒体,音视频
当然,如果要进大厂的同学,还得突击一下算法部分。leetcode 简单和中等难度就可以。
https://juejin.cn/post/6951407692011274247
- EOF -
1、
2、
3、
觉得本文对你有帮助?请分享给更多人
推荐关注「前端大全」,提升前端技能
前端大全
点击获取精选前端开发资源。「前端大全」日常分享 Web 前端相关的技术文章、实用案例、工具资源、精选课程、热点资讯。
Official Account
点赞和在看就是最大的支持❤️