首先抱歉这是一篇流水账, 也不会留下太多有用的东西, 权当提醒大伙, 面试提前准备, 面试中也有偏差, 尤其是电话面试, 失败不要气馁.本人是个前端屌丝.
首先在某招聘app上接到了阿里巴巴的投递邀请, 当然先投一个试试再说, 毕竟阿里有众多前端大神牛人, 技术是业界顶尖水平, 肯定是向往之地. 然后当天很快收到了邮件, 表示会在几个工作日内电话联系.中间过了一个周末, 在昨天, 八月六号晚上七点半左右接到了0571开头的号码的电话. 开头询问我是不是XXX本人, 是否有换工作意愿(大致是这个意思), 得到肯定答复后, 开始提问.
先是大致问一下大致的工作经验和项目经历, 本人比较特殊, 15年毕业后干了一年不到本职工作然后投身代码界, 一开始在几个小公司流浪, 啥都干, 17年2月份才开始全面写前端, 简历上这一段经历可能比较模糊. 17年7月才到现在的公司, 目前正好一年零几天. 期间面试官把现在公司名字念错了, 有点小尴尬. 项目经历, 描述了写的几个后台项目和移动端的H5营销活动, 技术栈是vuejs. 接下来就比较尴尬了, 因为我们公司由于一些原因(为了让产品好好画原型), 中后台业务决定换成react技术栈, 采用ant-design组件库. 简历上也有这部分体现, 所以面试官重点问了些react的问题, 而本人才写react半个月, 好多东西只会用, 了解的不深. 问的问题罗列一下:
-
react的生命周期函数, 只回答了 constructor, didmounted, willmount, willreceiveprops, shouldupdate;
-
willmount 和didmount 之间的区别, ajax请求可以写在willmount里吗? 区别是didmount是组件挂载之后, 一般接口请求写在didmount里面, 但也有写在willmount里面的, 不知道更多细节, ssr时候请求数据写在willmount里面(好像这个是错的, 扣分)
-
vue 和 react 的区别, 和virtul dom? 回答是vue用对象描述组件, 组件复用主要是mixin, react用class描述组件, 复用组件方式hoc. virtual dom 使用js对象描述真实dom, 一层抽象, 避免了直接操作dom, 脱离浏览器存在, 可以跨平台, node, weex等.
-
数据管理方案, redux原理, redux中间件机制? 我回答是redux会订阅store, store变化后, 通过maptoprops 通知组件更新(我不知道对不对, 更具体是不知道的, 这个回答算是胡诌). 中间件就完全不知道了.
-
dva.js 的一些东西? dva还是约定大于配置, 基于 redux 的最佳实践, 具体内部不了解(其实我们项目后来该用mobx了). 6. webpack的一些东西, babel-loader的作用, presets等? babel-loader就是把项目里js代码编译成浏览器能运行的js代码, preset有 env, 2015等, 推荐使用env, 不同的stage的区别, 后来想想, 当时已经被前面的react问题问的进入懵逼状态了, 导致这里回答完全错误, babel-preset-env, 回答成babel-transfor-runtime了, stage的区别说反了(正确的是数字越小支持特性越多), 还有升级webpack4的一些东西, 这个倒是因为之前总结过一篇文章, 记得还是比较清楚的 https://segmentfault.com/a/1190000014516899, 升级插件, 抽取css的插件变了, commonschunkplugin变成了splitchunks, uglifyjs的插件可以开启多线程(这个感觉最明显, 快了许多). 最后问还有什么想问的, 心想基本凉凉, 也就没什么想问的, 结束通话.
总结的话写在最后, 总体说来, 这次面试很失败, 固然有方方面面原因, 个人在晚上七八点还没吃饭, 刚从公司回到家, 开头状态比较朦胧, 中间被抓着react一通问, 整个人就更懵了, 期间还有若干问题回答完全错误, 扣分比较严重. 也归咎于自己基础不够扎实, 被问的最多的react完全是水桶最短的那块板, 投完简历之后也没认真复习巩固基础, 沉没在业务的海洋之中. 或许本人还是不适合被电话面试, 印象中的电话面试经历都不是太愉快.就这次电话面试来说,相当于彼此浪费了时间, 还有经同事提醒, 阿里的周期是一年, 现在投简历会错过明年的金三银四.