前端常见的面试题汇总
一、前端开发面试对各方面的考察
1、HTML&CSS
对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:布局、盒子模型、选择器优先级及使用、HTML5、CSS3、移动端适应
2、JavaScript
数据类型、面向对象、继承、闭包、插件、作用域、跨域、原型链、模块化、自定义事件、内存泄漏、事件机制、异步装载回调、模板引擎、Nodejs、JSON、ajax等。
3、其他
HTTP、安全、正则、优化、重构、响应式、移动端、团队协作、可维护、SEO、UED、架构、职业生涯
二、HTML相关问题
1、文档类型的作用是什么?你知道多少种文档类型?
2、浏览器标准模式和怪异模式之间的区别是什么?
3、使用XHTML的局限有那些?
4、如果网页内容需要支持多语言,你会怎么做?
5、在HTML5的页面中可以使用XHTML的语法吗?
6、在HTML5中如何使用XML?
7、'data-'属性的作用是什么?
8、如果把HTML5看作做一个开放平台,那它的构建模块有那些?
9、请描述一下cookies,sessionStorage和localStorage的区别?
10、谈谈innerHTML outerHTML innerText之间的区别。
三、JS相关问题
1、你使用过那些Javascript库?
2、你是否研究过你所使用的JS库或者框架的源代码?
3、什么是哈希表?
4、'undefined'变量和'undeclared'变量分别指什么?
5、闭包是什么,如何使用它,为什么要使用它?
6、请举出一个匿名函数的典型用例?
7、请解释什么是Javascript的模块模式,并举出实用实例。
8、你如何组织自己的代码?是使用模块模式,还是使用经典继承的方法?
9、请指出Javascript宿主对象和内置对象的区别?
10、'.call'和'.apply'的区别是什么?
11、请解释'Funciton.prototype.bind'的作用?
12、你如何优化自己的代码?
13、你能解释一下JavaScript中的继承是如何工作的吗?
14、请指出浏览器特性检测,特性推断和浏览器UA字符串嗅探的区别?
15、请尽可能详尽的解释AJAX的工作原理。
16、请解释JSONP的工作原理,以及它为什么不是真正的AJAX。
17、你使用过JavaScript的模板系统吗?
18、请解释变量声明提升。
19、请描述下事件冒泡机制。
20、"attribute"和"property"的区别是什么?
21、'=='和'==='有什么不同?
22、你如何获取浏览器URL中查询字符串中的参数。
23、请解释一下JavaScript的同源策略。
24、请解释一下事件代理。
25、描述一种JavaScript memoization(避免重复运算)的策略。
26、什么是三元条件语句?
27、函数的参数元是什么?
四、jQuery相关问题
1、你知道那些针对jQuery的优化方法。
2、请解释'.end()'的用途。
3、你如何给一个事件处理函数命名空间,为什么要这样做?
4、请说出你可以传递到jQuery方法的四种不同值。
5、请指出'.get()','[]','eq()',的区别。
6、请指出'.bing()','.live()'和'.delegate()'的区别。
7、请指出'$'和'$.fn'的区别?或者说出'$.fn'的用户。
五、CSS相关问题
1、描述css reset的作用和用途。
2、描述下浮动和它的工作原理。
3、清除浮动的方法有那些,分别适用于什么情形。
4、解释css sprites,如何使用。
5、你最喜欢的图片替换方法是什么,你如何选择使用。
6、如何为有功能限制的浏览器提供网页。
7、如何视觉隐藏网页内容,只让它们在屏幕阅读器中可用。
8、你使用过网格系统吗?如果使用过,你最喜欢哪种?
9、你使用过meidia queries(媒体查询)吗,或者移动网站相关的CSS布局。
10、你熟悉SVG样式的书写吗?
11、如何优化网页的打印样式。
12、在书写高效CSS文件时会有哪些问题需要考虑。
13、你是否接触过使用非标准字体的设计?
14、简述div元素和span元素的区别。