Toc
  1. 道富 2019.12.11(电话)
  2. 个推 2019.12.09
  3. 招商银行 2019.03.06(电话面)
  4. 珍爱网 2019.03.05(视频)
  5. 个推 2019.01.18
Toc
0 results found
FBB
面经
2019/12/11 前端 面经

仅此记录一下,面试被问及的问题,简单的归纳一下。

道富 2019.12.11(电话)

  • Object.defineProperty和Proxy实现双向绑定的区别
  • AngularJS双向绑定
  • React Hooks函数
  • useMemo和useCallback的使用场景
  • HTML语义化标签
  • nth-child和nth-type-child区别
  • 字符串方法
  • JS基本类型
  • 事件循环
  • Promise A+规范
  • BFC
  • 移动端 1px处理

个推 2019.12.09

  • 函数式编程特点
  • Hooks相对于Class组件的优势
  • 事件循环,微任务有哪些
  • Promise A+规范
  • Object.defineProperty和Proxy实现双向绑定的区别
  • 路由模式的实现
  • Webpack的优化
  • JS和CSS实现动画的优缺点

招商银行 2019.03.06(电话面)

  1. 用现在的项目描述一下自己的能力(大概简单介绍了一下自己的项目经历)

  2. 对Java/数据库有了解吗(以前简单的学过)

  3. 隐藏元素

  4. session和cookie(把session和sessionStorage搞错了)

  5. 性能优化(讲了几个小的知识点)

  6. web安全(讲了CSRF/XSS)

  7. 浏览器兼容性(回答得不是很好)

  8. 有什么点是我没有问到的,但是你了解的,可以聊一下

问题不是很多,只有不到20分钟的时间。每一个回答之后,面试官都是说可以。听不出来任何的语气,但是聊的还是挺开心的。

珍爱网 2019.03.05(视频)

基础

  1. function常用的传值类型(基本类型,引用类型);几种基本类型,有什么引用类型?

  2. ES6有什么特性?(聊了如下知识点)

    • let/const 不会变量提升,const定义常量(引申const obj添加值和进行复制)
    • class继承(继承的关键字,构造函数中的关键字)
    • 模块化(export和export default的区别)
    • map/filter/reduce等api
    • 数值解析
    • 模板字符串
    • …扩展符
    • promise
    • generator
  3. 事件委托,什么时候会使用?阻止冒泡的方法。

  4. cookie的保护处理(大概是想问web安全的知识)。但是这一块比较薄弱,讲了一下跨站请求伪造。

react

  1. 父子组件/兄弟组件的通信

  2. 为什么react里面使用map而不是用foreach

  3. 高阶组件了解吗?

算法

  1. 100匹马中,挑选出跑的最快的10匹马,每次最多10匹马比赛,如何设计。

总结

公司用vue比较多,因为我比较熟悉react所以问的react相关技术栈。整个面试时间大概在40分钟的样子,面试时间很准时。整个过程比较流畅,但是题主在某些问题上达答得不是很好,面试官也赶时间没有聊太久,某一些题的回答也让他比较满意。

个推 2019.01.18

笔试

  1. 什么时候display: inline-block会产生间隙?如何解决?

  2. 如何把span元素放到距离浏览器顶部20px左边200px?

  3. 什么时候会产生CSS阻塞?什么时候会产生JS阻塞?

  4. 写出下列代码结果

let x= [1, 2]
let { ...y } = x
console.log(y)    //{0: 1, 1: 2}
  1. 什么情况下发生重绘/回流

  2. JS如何实现继承,如何避免原型链上数据共享?

  3. 一道关于事件机制的输出问题。(setTimeout, promise, then)

setTimeout(function () {
  console.log(1)
}, 0)

new Promise(function (resolve) {
  console.log(2)
  resolve()
  console.log(3)
}).then(function () {
  console.log(4)
})

console.log(5)    //2 3 5 4 1
  1. 实现二分查找,已经算法复杂度。

一面

一面是两个哥哥来面试的,一个看起来比较严肃,一个小哥看起来白净温和一些。第一次经历两个老哥同时面试,心里丝毫没有波澜是不可能的。

  1. 简单的自我介绍。主要讲了一下自己的实习经历以及使用的技术栈。

  2. 因为看到我简历上面写了三个技术栈,询问了一下我对三大框架的看法。(纯属瞎扯

  3. 就面试题的事件机制的问题,展开了提问。讲了一下同步/异步任务,宏任务/微任务。然后问了resolve()之后的值是否会打印?在promise里面添加return的效果。(回答得一塌糊涂

  4. 输入url到页面展示的过程。在整个过程之中,有什么可以优化的点?(请求那一块不太熟悉,讲了一下重绘/回流,结合了一下项目

  5. ES6里面用过的方法。(let/const, Object新增方法, 扩展符, Promise, class, module)

  6. promise里面都用过什么方法。(没办法,我太菜了,只能讲一下then,catch,all)。然后问了一下什么样的异常能够在内部捕获到(当时全场寂静,面试官也会过了)。聊到了promise.all,发送多条请求的,然后发生异常什么的。(然后我结合实际项目将可以对这个使用)。接着又被面试官问到,all的一个弊端就是必须全部resolve返回,会出现超时的情况怎么处理之类的。被面试官普及到了race这个方法。

  7. 讨论了一下sort排序里面使用的是什么排序方法。

  8. 问了一下css选择器的问题,经常使用的选择器。然后选择器的匹配方式(先匹配哪一个)。+/>/~分别是什么选择器。

  9. 项目中使用了localstorage/sessionstorage,问了一下两者的区别。打开一个新的标签页sessionstorage会不会失效之类的。他们储存的大小是多少。

  10. 看我博客里面写了节流和防抖,问了一下这两个区别(回答的并不是很清楚),瞎扯一下项目中为什么会使用这两个概念。

  11. 手写合并两个有序数组(感觉像是归并排序最后一步)。

  12. 未来的职业规划,以及想问他们的问题。

大概是我能够想起来的一面内容,很多问题都没回答上来,遇到一些不会的问题,他们也会回答一下。大概面试了一个小时的样子,虽然感觉不是很好,还是让我稍等一下。

二面

二面面官来的时候,一不小心看到他的工牌,发现他好像我之前在boss直聘上看到发不过岗位的一个哥哥。好像还是什么前端大经理之类的。

  1. 简单的自我介绍,自然重点还是技术栈和实习经历。

  2. 问了一下为什么重第一家实习公司辞职,貌似他觉得那家公司还不错。

  3. HTTP协议了解吗?不敢回答特别直接,把自己了解的请求头/请求方式/缓存机制讲了一下。

  4. 数据结构和算法了解嘛?(学过都忘了)链表和数组的区别。

  5. 使用过较多的技术栈(都是浅薄的学习),react有什么好处。讲了一下虚拟DOM,diff算法,key的重要性。

  6. 数组去重(原生)。如果数组里面有对象怎么去重。(最后转化为判断两个对象是否相等)。

  7. 问了event loop/ES6都用过什么。(悄悄说之前问过了)

  8. 未来的职业规划,以及想问他的问题。

二面蛮多小的问题都没记起来,脑袋不够用了。但是面试官还是很好的,有时候问题回答不上来,都是面带笑意回答我。面完之后,他让我稍等一下,他就走了。过了四五分钟之后,回来告诉我hr现在不在,之后联系我。讲话途中有别电话叫走了,回来之后又说一次hr不在。问了一下最早什么时候能够去实习。大致结束了。

总结

其实笔试体验不太好,中途换了两次会议室,在此期间还把水弄到身上了。大概整个过程从1.40到了4.10的样子,笔试+两个面试,面到衣服都干了。口干舌燥。

技术上面来说,蛮多的都是自己平时又看到的,然后面试官当时打开博客和git一边看一边问的,有些写到博客上的东西理解并不是很透彻,也算是给自己挖坑了。但是觉得git上的东西应该有一点加分。维护好git还是很重要的。

打赏
支付宝
微信
本文作者:FBB
版权声明:本文首发于FBB的博客,转载请注明出处!