2021年4月8日在实习僧投的简历,4月12号中午在面试中望软件回来的路上接到YY邀面电话,直接约下午5点45分线下面试。
自己从新港东地铁站过去还是挺远的,大概5点钟就到了南村万博,下地铁之后走了一段路吧还算挺方便的。差不多到45分的时候面试官就来了,是一位看起来与我年级差不多大的学长。
自我介绍、简单介绍项目
介绍完之后开始问问题,由于自己的就没有面过几家公司所以总体表现的比较紧张,但是面试官看起来比我还紧张,还是挺稚嫩的。
笔试
开始是直接接到HR面试邀约,是没有做过线上笔试的,以为可以不用笔试了,面试官一来到就直接丢了一份题目过来,让我在25分钟之内手写完成。
- 实现一个元素的垂直居中布局
- 分别写一下apply、bind、call的区别,并且选择实现任意一个myApply、myBind、myCall
- 用O(1)的复杂度实现数组的push()、pop()、Max()方法,命名为myPush、Push、Max
max O(1)复杂度真不会,最后被提示了用空间换取时间
css
- 介绍一下盒子模型,标准盒子和怪异盒子,box-sizing属性
- flex布局
- display有什么属性?追问block和inline-block有什么区别
- position有什么属性,分别有什么特点,相对于什么布局。追问了absolute、relative区别,并举了个只有absolute和两者结合的例子
- bfc?怎么实现?
js
- promise实现原理,以及应用,追问了传入了传输什么参数和then后面是什么参数,then是什么时候执行
- 浏览器事件循环?追问了有什么异步任务
- 原型和原型链
- New的原理及过程
- js的几种继承方式,怎么实现
- 捕捉和冒泡
vue(问的比较多,比较细节)
- 有几种显示模式(hash、history、abstract)
- vuex中Mutation和Actions的区别,几种状态的关系怎样的
- nextTick()原理
- 父子组件传参方式
浏览器
- 怎么实现跨域?追问jsonp传入参数
- 你知道有什么请求头?作用?
- 小程序与h5页面的区别,为什么小程序更快?
git
- git中merge和rebase区别
merge合并之后不会merge的分支commit,rebase会保留 - 怎么解决分支冲突
- 手动删除无关内容
- 重新提交该文件git add code.txt , git commit -m “解决掉冲突的版本”
- 如果需要,删除dev分支,git branch -d dev
截止发文已经过去一个星期了,还没有收到二面邀请,估计凉了吧。不过自己也确定去虎牙了hhh