记一次高级前端开发工程师面经
作者: 唯依绾青丝
https://juejin.cn/post/6951407692011274247
前言
#面试挺累人的,每天下班后赶回家饿着肚子面试,面了将近一个月,大概就一个中厂的水平吧。面试完最好进行一个复盘,查漏补缺。
一、携程
对着简历问一遍 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 简单和中等难度就可以。
如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~
点个『在看』支持下
评论