都说程序员应该多出去面试,否则不知道本身有多菜,本着我是菜鸡我怕谁的铁头精神,这两天也积极投递简历,寻求面试机会,可是由于经验不足的问题,不少大公司连简历都过不了,只有一些创业公司给了面试机会,不过创业公司问的也挺具表明性的,不敢苟藏,分享出来。css
首先自我介绍一下,我叫XXX,武汉某211小本,18年6月毕业,刚毕业的时候写了三个月的java(Ctrl C + Ctrl V);三个月前,前端基础很薄弱,连引用类型和值类型都傻傻分不清楚,是一个24k如假包换的菜鸡。通过三个月的学习,自我感受长进了很多(或许是错觉),结果面试下来仍是以为,嗯,果真仍是菜鸡。前端
由于是创业公司,就不报公司名字了(反正没人听过),是一家作区块链的。vue
一面:
- 一道算法题,大意以下: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表达式便可)
- 说一下数组去重的方式(这个芽羽大神的博客上讲的很清楚,想了解的能够去看一下,set和O(n^2)复杂度的这两个方法确定不是面试官想听的,排序去重,indexOf,es6等是比较好的答案,为了装逼,我还说了一个前缀树去重)
- 你说到前缀树去重,那你讲一下怎么作(装逼成功,想了解前缀树的本身百度去吧,不少资料)
- 说一下vue双向绑定的原理(这里从源码层面讲了十多分钟,效果应该还不错)
- 平时用过哪些es6的特性(let,const,模板字符串,promise,箭头函数等等)
- promise是解决什么的
- 若是要你实现一个promise,你该怎么实现(这个由于看过promise的实现方法,也答得不错)
- 有了解async,await吗(generator的语法糖,使异步代码表现得像同步)
- 那你说说generator呢
- 讲一下XSS(对不起,只知道是安全方面的,了解的很少)
- 有了解过weex,rn这些吗(没,目前只作过pc端)
- node呢(没)
- 说说跨域吧(浏览器有个同源策略,巴拉巴拉,解决方案是,后端设置cors,先后端配合jsonp,我的以为最好的方案是修改nginx配置)
- 讲一下闭包(这个要讲的东西不少,可以把做用域,做用域链,执行上下文栈讲清楚便可)
- 如何实现一个居中布局(老生常谈了)
- 各类奇奇怪怪的css,具体题目忘了,反正css答得很差
一面大概面了一个多小时,我觉得挂了,结果让我等一下,因此又苟到了二面:
- 讲一下vue数据驱动原理
- 讲一下vNode,为何要用vNode,讲一下diff算法
- 讲一下let和var的区别
- 你刚刚说到暂时性死区,讲一下暂时性死区呢
- 箭头函数和普通函数的区别(this?)
- 怎么实现promise的all方法
- 讲一下浏览器的缓存
- js的继承机制
- 说一下闭包
- 了解过哪些设计模式
- 怎么实现一个单例
- 平时获取知识的渠道(掘金,github,公众号,微信群?)
- 有作过weex,rn这些吗(没有)
- 怎么没去试试大厂(由于菜啊)
- 前端打包工具备了解吗(webpack只跟着官网配过,没在项目中实操过)
二面大概面了四十多分钟,我觉得要让我走了,结果让我等一下,来了hr,好了,没了。