最近想换工作,上周五面试了一家,虽然是小公司但是也是面试官问的还是很详细的。综合以前的面试印象把面试经常用到的总结一下,希望对自己以后的面试会有帮助。
个人认为面试基本上是从前端基础+计算机基础+技能延伸这几个方面来提问的。
前端基础个人认为需要提到下面这些知识:
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上有所贡献等,这些都是绝对的加分点,这些并不是说都要做,如果能选中其中一两项有所成果应该是能加分的。
最近也比较懒,能想起的大概就这么多,有想到的再上来更新吧。
=========================================我是可爱的分界线=====================================================================
更新:
这是无意间看到的关于前端面试的问题的总结,感觉很不错,大家可以借鉴下,找工作的同学可以瞧瞧,工作中的同学可以自己想想看这些知识是否了解或者熟悉,给自己前端技术一个小的检测。