阅读 626

半年前端寒冬小厂面试经

都说程序员应该多出去面试,不然不知道自己有多菜,本着我是菜鸡我怕谁的铁头精神,这两天也积极投递简历,寻求面试机会,但是因为经验不足的问题,很多大公司连简历都过不了,只有一些创业公司给了面试机会,不过创业公司问的也挺具代表性的,不敢苟藏,分享出来。

首先自我介绍一下,我叫XXX,武汉某211小本,18年6月毕业,刚毕业的时候写了三个月的java(Ctrl C + Ctrl V);三个月前,前端基础很薄弱,连引用类型和值类型都傻傻分不清楚,是一个24k如假包换的菜鸡。经过三个月的学习,自我感觉长进了不少(或许是错觉),结果面试下来还是觉得,嗯,果然还是菜鸡。

因为是创业公司,就不报公司名字了(反正没人听过),是一家做区块链的。

一面:
  1. 一道算法题,大意如下:1由一个1组成(1 = 1),2由一个2或两个1组成(2 = 1 + 1; 2 = 2),3由一个3,3个一,一个1和一个2组成(3 = 3; 3 = 1+1+1; 3=1+2),问n有几种组成方式。(dp,找出dp表达式即可)
  2. 说一下数组去重的方式(这个芽羽大神的博客上讲的很清楚,想了解的可以去看一下,set和O(n^2)复杂度的这两个方法肯定不是面试官想听的,排序去重,indexOf,es6等是比较好的答案,为了装逼,我还说了一个前缀树去重)
  3. 你说到前缀树去重,那你讲一下怎么做(装逼成功,想了解前缀树的自己百度去吧,很多资料)
  4. 说一下vue双向绑定的原理(这里从源码层面讲了十多分钟,效果应该还不错)
  5. 平时用过哪些es6的特性(let,const,模板字符串,promise,箭头函数等等)
  6. promise是解决什么的
  7. 如果要你实现一个promise,你该怎么实现(这个因为看过promise的实现方法,也答得不错)
  8. 有了解async,await吗(generator的语法糖,使异步代码表现得像同步)
  9. 那你说说generator呢
  10. 讲一下XSS(对不起,只知道是安全方面的,了解的不多)
  11. 有了解过weex,rn这些吗(没,目前只做过pc端)
  12. node呢(没)
  13. 说说跨域吧(浏览器有个同源策略,巴拉巴拉,解决方案是,后端设置cors,前后端配合jsonp,个人觉得最好的方案是修改nginx配置)
  14. 讲一下闭包(这个要讲的东西很多,能够把作用域,作用域链,执行上下文栈讲清楚即可)
  15. 如何实现一个居中布局(老生常谈了)
  16. 各种奇奇怪怪的css,具体题目忘了,反正css答得不好
一面大概面了一个多小时,我以为挂了,结果让我等一下,所以又苟到了二面:
  1. 讲一下vue数据驱动原理
  2. 讲一下vNode,为什么要用vNode,讲一下diff算法
  3. 讲一下let和var的区别
  4. 你刚刚说到暂时性死区,讲一下暂时性死区呢
  5. 箭头函数和普通函数的区别(this?)
  6. 怎么实现promise的all方法
  7. 讲一下浏览器的缓存
  8. js的继承机制
  9. 说一下闭包
  10. 了解过哪些设计模式
  11. 怎么实现一个单例
  12. 平时获取知识的渠道(掘金,github,公众号,微信群?)
  13. 有做过weex,rn这些吗(没有)
  14. 怎么没去试试大厂(因为菜啊)
  15. 前端打包工具有了解吗(webpack只跟着官网配过,没在项目中实操过)
二面大概面了四十多分钟,我以为要让我走了,结果让我等一下,来了hr,好了,没了。
关注下面的标签,发现更多相似文章
评论