一直挺想总结一些关于校招面试的经验,最近有挺多人问,也恰逢有闲心,便决定开篇博乱扯一通,个人能力并没有特别突出的地方,纯属个人经验,看看就好, 有不同观点欢迎指出。
笔试:只参加过阿里的线上笔试,美团是霸面,爱奇艺是实习转正,所以并没有什么可以借鉴的地方,所以笔试这一块儿并没有太多经验,后期跟很多已经入职BAT的人交流,都会吐槽笔试只是纯唬人的,过不过有时候看缘分看运气,而笔试的建议是面试哪个公司可以去刷该公司前两年的校招或实习笔试题,本人在阿里线上笔试时刚好遇到了去年的同一套题目(然后还是很难)。
面试:这里更多总结技术方面可能被问到的问题,关于穿着,说话建议用最舒适的状态、面貌迎接就好。
个人认为面试基本上是从前端基础+计算机基础+技能延伸这几个方面来提问的。
前端基础个人认为需要提到下面这些知识:
HTML、 CSS、JS 、 HTML5 、CSS3、 浏览器相关、http(https)、session、cookie、ajax、jsonp等
具体的可以个人去延伸,比如W3C标准,之前和一个妹子聊天,妹子一直以为W3C的来源是W3CSchool,也是笑哭了,很多公司的Job Description上也会描述熟悉W3C规范或者是对Web标准有一定的理解,所以像这样常问的问题一定要准备好自己的回答。其他的基于这些可以看看CSS的基本功:布局、盒子模型、选择器优先级及使用等,
JavaScript: 数据类型、面向对象、String Array的操作、继承、正则、闭包、插件、作用域、跨域、原型链、模块化、自定义事件、内存泄漏、事件机制、异步装载回调等。其他比如:
前端的安全性、如何优化、重构、响应式、移动端、如何编写可维护的代码等。(此处更多借鉴https://github.com/hawx1993/Front-end-Interview-questions的整理)
这里列一些我在面试时最常问到的,都是老生常谈的问题:
- 什么是闭包?
- JS如何实现类,继承?
- 什么是冒泡和捕获?
- JS有哪些数据类型?
- Null和Undefined的区别?
- 判断时if是false的值?
- isNaN()的作用?
- JS对象中的Array对象和String对象的各种方法
- this关键字在不同环境下的指向
- JS的作用域
- setTimeout和setInterval
- 了解CSS3或HTML5吗,都用过哪些
计算机基础主要是计算机网络、算法、数据结构方面的知识,这一块儿是我最薄弱的,而运气好的是面试官问的也较少,更多的是询问排序查找相关的一些,经验不足就不多说。
技能延伸:
在前面两者技术的基础上对技能的延伸能增加获得offer的机会,比如了解模板引擎、熟悉比较火的前端框架或前端技术(JQuery、Bootstrap、Zepto、Node,Angular.JS),并且研究过源码、对svn或git等版本控制软件的操作、 长期更新博客、 在github上有所贡献等,这些都是绝对的加分点,这些并不是说都要做,如果能选中其中一两项有所成果应该是能加分的。
因为面试已经隔得太久,最近也比较懒,能想起的大概就这么多,有想到的再上来更新吧。