2021年4月8日在实习僧投的简历,4月12号中午在面试中望软件回来的路上接到YY邀面电话,直接约下午5点45分线下面试。

自己从新港东地铁站过去还是挺远的,大概5点钟就到了南村万博,下地铁之后走了一段路吧还算挺方便的。差不多到45分的时候面试官就来了,是一位看起来与我年级差不多大的学长。

自我介绍、简单介绍项目

介绍完之后开始问问题,由于自己的就没有面过几家公司所以总体表现的比较紧张,但是面试官看起来比我还紧张,还是挺稚嫩的。

笔试

开始是直接接到HR面试邀约,是没有做过线上笔试的,以为可以不用笔试了,面试官一来到就直接丢了一份题目过来,让我在25分钟之内手写完成。

  1. 实现一个元素的垂直居中布局
  2. 分别写一下apply、bind、call的区别,并且选择实现任意一个myApply、myBind、myCall
  3. 用O(1)的复杂度实现数组的push()、pop()、Max()方法,命名为myPush、Push、Max
    max O(1)复杂度真不会,最后被提示了用空间换取时间

css

  1. 介绍一下盒子模型,标准盒子和怪异盒子,box-sizing属性
  2. flex布局
  3. display有什么属性?追问block和inline-block有什么区别
  4. position有什么属性,分别有什么特点,相对于什么布局。追问了absolute、relative区别,并举了个只有absolute和两者结合的例子
  5. bfc?怎么实现?

js

  1. promise实现原理,以及应用,追问了传入了传输什么参数和then后面是什么参数,then是什么时候执行
  2. 浏览器事件循环?追问了有什么异步任务
  3. 原型和原型链
  4. New的原理及过程
  5. js的几种继承方式,怎么实现
  6. 捕捉和冒泡

vue(问的比较多,比较细节)

  1. 有几种显示模式(hash、history、abstract)
  2. vuex中Mutation和Actions的区别,几种状态的关系怎样的
  3. nextTick()原理
  4. 父子组件传参方式

浏览器

  1. 怎么实现跨域?追问jsonp传入参数
  2. 你知道有什么请求头?作用?
  3. 小程序与h5页面的区别,为什么小程序更快?

git

  1. git中merge和rebase区别
    merge合并之后不会merge的分支commit,rebase会保留
  2. 怎么解决分支冲突
  • 手动删除无关内容
  • 重新提交该文件git add code.txt , git commit -m “解决掉冲突的版本”
  • 如果需要,删除dev分支,git branch -d dev

截止发文已经过去一个星期了,还没有收到二面邀请,估计凉了吧。不过自己也确定去虎牙了hhh