【秋招复盘】百度提前批-前端-一面+二面+三面(已OC)
目前在offer评估中,说是九月底十月初出结果
一面(1h)
- 自我介绍
- 介绍项目
- css有哪些选择器?优先级?
- 项目中怎么解决css class冲突的问题
- CSS Module原理
- 手撕题:实现两栏布局
- 手撕题:统计百度首页中所有的标签,输出最多的三个
- 手撕题:querystring解析,形成一个map,考虑hash和中文的情况
- 手撕题:写一个nodejs脚本,获取百度首页源码,将所有文本“百度”改成“签百度”,然后保存源码成本地文件。
- 看题说结果
for (var i = 0; i < 5; i++) {
(function(i) {
setTimeout(() => {
console.log(i)
}, 1000 * i*)
})(i)
}
这样呢?
for (var i = 0; i < 5; i++) {
(function() {
setTimeout(() => {
console.log(i)
}, 1000 * i)
})(i)
}
- 说一下输出顺序
setTimeout(() => {
console.log(1)
}, 0)
new Promise(resolve => {
console.log(2)
for (let i = 0; i < 10000; i++) {
if (i = 9999) {
resolve()
}
}
console.log(3)
}).then(() => {
console.log(4)
})
console.log(5)
- 有什么区别
const getData1 = async () => {
return await fetch('xxx')
}
const getData2 = () => {
return fetch('xxx')
}
- 讲下科研项目
- 做过移动端吗
- 讲一下Koa的洋葱模型
- 反问
二面(1h)
- 介绍项目难点
- 编程题:n个数的数组,选取其中k个数,求排列组合
- 手撕题:并发池
const urls = ['url1', 'url2', 'url3']
const max = 2
const results = await requestMaxPool(urls, max)
- 知道哪些http请求头、响应头,说一下
- transfer-encoiding是干嘛的
- 强缓存、协商缓存
- OPTIONS请求,说一下预检过程
- 进程、线程的区别
- 知道awk吗?怎么实现统计文件行数?
- css、js执行顺序,script的async和defer有什么区别
- git怎么删除某一次commit,比如a、b、c、d四条,怎么删除c
- 资源请求的优先级
- Koa原理,讲一下洋葱模型
三面(70min)
- 聊项目(从业务需求到项目难点,还有整个workflow)
- 说说ts
- 手撕题:数组拍平
- 讲讲setTimeout、setTimeInterval、requestAnimationFrame的区别
- 手撕题:用requestAnimation实现一个setInterval定时器
- 为什么从计算机视觉转前端
- 反问