笔者还在努力去大厂面试中,会持续更新面试感受的。笔者一直喜欢做总结和反思,从面试经历里可以收获不少。
这个经历比较特殊,是他们负责三面的主管先面了我一波。。
面试时长: 40分钟
面试形式:电话面试
面试问题:
- 自我介绍
- 所在公司背景了解:公司类型、客户定位、产品运营销售模式
- 项目了解:项目介绍,商业模式、项目周期
- 个人成长:个人成长经历,在项目所担任的角色,做过什么事情,有哪些成果
- 规划目标:近几年的人生规划安排
上面了解完了之后,结合我个人的情况给我做了一下岗位推荐和现在蚂蚁金服的大致一个情况,他现在所带领的团队有哪几个项目,项目所用的技术栈、项目的前后端架构设计等,说接下来会给我安排angular技术专家来负责我的技术面(好,这就算过了)。
面试时长: 2小时13分钟
面试形式:电话面试
面试问题:
(可能是一面的时候了解的差不多了,所以上来就是直接技术面。这一面挂了,挂了的原因是基础知识都还可以,深度不太够。)
啊~~~这个就太多了,面的很全面,因为他们需求是h5+node全栈型的,时间有点久了。。我就说一下范围和大致的几个问题吧。
- Angular框架:
- Angular1, Angular2比较,升级了具体哪些内容,怎么实现的
(这个我答得不是很好,我偏向于谈Angular2的框架原理、优化,对Angular1里怎么实现的不是很了解了) - Angular2里的依赖注入原理
(这个我是结合具体项目实践来回答的,但可能没达到面试官要求的深度,所以面试官又引导我回答了依赖注入的层次结构、依赖不同层级注入会带来的不同影响,了解的不是很透彻,但这里还是思索了一下给出了我的理解和看法) - Angular里单例模式和多例模式的依赖注入实现
(这个当然面试官没有直接这样问,而是设置了一个场景,当我要维护一个List的状态的时候,Angular2怎么处理? 没碰到过这样的业务场景,我提出了单例模式去处理。但面试官说,Angular2里就有提供现成的多例模式的方案,不需要你这样处理) - Angular里组件可以被注入么
- Angular里import组件和service有什么区别
- Angular里多个共享模块都依赖注入了一个service, 当你调用这个service的时候,调用的是哪个模块里的service. 这种问题怎么解决,原理是什么 (这个没回答上来。。。angular2依赖注入这一块儿回答的很不好,偏向浅层原理,没有实际深入)
- Angular1, Angular2比较,升级了具体哪些内容,怎么实现的
- node.js
- 有哪些常用模块,说说他们的原理
- Nodejs怎么实现单线程还能同时操作多个文件的读写操作的
- 事件驱动的优先级,setImmediate, setTimeout, process.nextTick的优先执行顺序
(笔者回答了顺序,但没有深层次答出为什么。。因为确实实际项目中要么全部异步,要么想办法保持队列,真正靠这个排顺序很少,一般底层的node模块才会这样写) - nodejs是怎么异常处理的,如果当前的进程挂了怎么处理,线程、进程的区分
(这个没答上来,我说了我平常http、异步操作是怎么处理异常部分,但其实说unhanddleRejection 调用了底层的domain模块)
- 有没有在npm上发布过包,怎么发布的,发布版本号语义,如果别人提了一个Issue,你怎么处理(这块儿还是答得不错的,因为笔者有发布过包)
- http,https协议, 有没有抓过包,tcp/udp的了解程度
- 网络ISO分层模型
- 跨域访问的解决方案
(笔者的业务场景一般是前后端部署在一台服务器上,所以自己只提供了1. iframe标签,2. http请求白名单,两个方案,后来面试官有提示说还有jsonp,我说我不是很了解这个方案。。。面试到这儿已经基本感觉没希望了。。。) - 网络安全:xss攻击, xsrf攻击
(面试官是设置一个具体场景,问你怎么进行攻击,感觉这个面试官很重视实践对原理理解)
哎。。莫名其妙挂了。。。后来托朋友问了原因,说笔者回答的内容不够有深度,虽然大部分都回答出来了。。。(PS: 面试官小姐姐,你也没深入问啊,,我还觉得一面咋这么简单呢,,,是我太单纯了. 有点伤心的,面试官电话挂太快了,都没让我有机会抢救一下我的形象==)
面试时长: 27分钟
面试形式:电话面试
面试问题:
- 谈谈MVC MVVM的区别,各自的优势和劣势
- 谈谈 import和require引入文件的区别
- 你刚说到commonJS, 说说这个还有其他类似的么(commonJS, AMD, CMD)
- Angular2里是怎么进行脏值检查的
- 谈谈webpack里的environment是干什么的,怎么设置
- 谈谈 cookie,localStorage, sessionStorage的区别
- 页面渲染的流程
也是一把辛酸泪,花了两个小时的现场笔试+技术一面都过了,主管说他们只招收React和Vue的,我的技术栈是Nodejs+Angular不符合他们的需求。。。。。(what??我一开始以为是hr小姐姐忽悠我的结果,追着问了一些细节才知道原来真是这个)
虽然有点无厘头,但还是给了笔者一击重磅,笔者劝广大求职者下次答应去现场面试前一定先要求一次电话面试,不然白花费半天功夫在外奔波了,车费又不给报销是吧,毕竟咱是个勤俭持家的穷人。。。
笔试内容,时长为一小时
选择题:
- 盒模型 Box-sizing
- Http头部缓存字段有哪些
项目题: - 设计一个tree组件,自己设想尽可能多的业务场景来提供接口,参数,回调,事件
- 项目中最骄傲的一件事
- React/Vue 组件的生命周期
代码题: - js 实现 indexOf方法
- Js实现 函数,函数调用为: fn(1)(2)(3)()=1x2x3=6
稍等了半小时,通知我准备技术面试,面试时长约1小时
- 自我介绍
- 开发项目经验:
- Angular2里怎么处理异步数据流
- 项目具体怎么做性能优化的
- Nodejs在项目中所担任的角色是什么
- 谈谈js 和 ts的区别
- 单元测试:
- 使用了什么框架,断定库,单元测试什么内容
- 可复用组件的优化主要是什么类型的组件
- 如何实现代码的规范性的
- 介绍公司的现有项目业务组,询问笔者的偏向发展方向
彩蛋: 嗯,在等笔试结果的过程中,,憋不住到点儿了,在大搜车上了个大号,,,也不算白来 ==