前端基础个人认为需要提到下面这些知识:
HTML、CSS、JS 、 HTML5 、CSS3、 浏览器相关、http(https)、session、cookie、ajax、jsonp等
具体的可以个人去延伸,比如W3C标准。其他的基于这些可以看看
CSS的基本功:布局、盒子模型、选择器优先级及使用、CSS hack技巧、CSS浏览器兼容性问题、position相关问题、
containing block、BFC等,
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吗,都用过哪些
主要是计算机网络、算法、数据结构方面的知识,排序查找相关的一些。
技能延伸
模板引擎、熟悉比较火的前端框架或前端技术(JQuery、Bootstrap、Zepto、Node,Angular.JS),并且研究过源码、对svn或git等版本控制软件的操作、 长期更新博客、 在github上有所贡献等。