百度前端商业化实习(一面二面三面四面oc)
6-28下午五点
一面:简单 面试官很好 问的都是八股文和简单题
自我介绍
几个简单的八股文
盒模型
http状态码
/** * @param {any[]} args * @returns {string} */ function classNames(...args) { // your code here let resArr=[] const canSuingType=['String','Number'] const ignoreType=['Null', 'Undefined', 'Symbol', 'True', 'False'] function isObject(item){ return item instanceof Object } args.forEach(item=>{ const currentItemType=sliceType(item) if(canSuingType.includes(currentItemType)){ resArr.push(item) }else if(ignoreType.includes(currentItemType)){ } if(Array.isArray(item)){ let flatArr=item.flat(Infinity) flatArr.forEach(flatArrItem=>{ resArr.push(classNames(flatArrItem)) }) } if(currentItemType == 'Object'|| currentItemType =='Map'){ for(let key in item){ if(item[key]){ resArr.push(key) } } } }) return resArr.length==0?'':resArr.join(' ') } function sliceType(item){ const itemString=Object.prototype.toString.call(item) return itemString.slice(8,itemString.length-1) } const obj = new Map() obj.cool = '!' console.log( classNames(['BFE', [{dev: true}, ['is', [obj]]]]) ) // function whichType(item){ // let res='' // let isSplice=false // const itemString=Object.prototype.toString.call(item) // for(let i=0;i<itemString.length;i++){ // if(isSplice&&itemString[i]!==']'){ // res+=itemString[i] // } // if(itemString[i]==' '){ // isSplice=true // } // } // return res // } // console.log(sliceType(undefined)) // function regType(item){ // let reg=/' ()]'/ // const itemString=Object.prototype.toString.call(item) // return itemString.match(reg) // }
反问:
面试官说我一面在他这已经过了
业务
对我的评价和建议:比我那个时候强多了,比我面的大多数校招生都强
让我等二面电话
------------------------------------------------
6-29 11点
二面:简单
自我介绍
聊天
css简单八股文两道
原型 原型链
后端相关 设计
nestjs
var globalVar = "xyz"; (function outerFunc(outerArg) { var outerVar = 'a'; (function innerFunc(innerArg) { var innerVar = 'b'; console.log( "outerArg = " + outerArg + "\n" + "innerArg = " + innerArg + "\n" + "outerVar = " + outerVar + "\n" + "innerVar = " + innerVar + "\n" + "globalVar = " + globalVar); })(456); })(123);
console.log('script start') let promise1 = new Promise(function (resolve) { console.log('promise1') resolve() console.log('promise1 end') }).then(function () { console.log('promise2') }) setTimeout(function(){ console.log('settimeout') }) console.log('script end')
秒答,你对异步这块很熟悉啊:
说下事件循环和微任务宏任务
巧了,我昨天字节二面刚手写promise,前辈可以打开我博客看看
手写组合寄生继承
写个深拷贝吧:看我博客
那就不写js手写了
写个深度优先吧
https://bigfrontend.dev/zh/problem/get-DOM-tree-height
聊天
反问:
你二面已经过了 后续应该是hr面或者技术三面
对我的建议:保持对开源热爱,可以深入后端
我爱百度,每次面完都直接说过了,香!
--------------------------------------------------------------------
6-30 早上10点半 1个半小时 十年百度前端大ld 恐怖如斯
自我介绍
聊天 聊开源
我在组件库里做什么单元测试
utils覆盖率
聊天聊天
简单的发布订阅升级版
聊天
反问:
聊天
了解到前辈是百度十年前端大ld
对我的评价:能力远超实习生
---------------------------------------------------------
京东那边在催 所以提前了一下四面时间
7.1周五 晚上9点50 40分钟
四面:技术经理
类似于hr面 不过这个前辈技术懂得很多
刚面完前辈就说我给你过了,这边给你立马申请offer,但是不能保证下周一一定能立马offer
oc