这篇文章并不是最全的前端面试题(没有最全,只有更全),只是针对自己面试过程中遇到的一些难题、容易忽略的题做一个简单的笔记,方便后面有面试需要的小伙伴们借鉴,后续内容会不定时更新,有错误之处希望大家不吝指出。
1、Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?
- <!DOCTYPE> 声明位于文档中的最前面,处于 <html> 标签之前。告知浏览器以何种模式来渲染文档。
- 严格模式的排版和 JS 运作模式是 以该浏览器支持的最高标准运行。
- 在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。
- DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。
2、HTML、XML、XHTML 有什么区别
- HTML:超文本标记语言
用来描述和定义网页内容的标记语言,是构成网页的最基本的东西。它的作用就是一个规范,告诉所有浏览器都统一标准。
- XML: 可扩展标记语言
它的表现形式就是给一个文档加一堆标签,说明每段文字是干什么的,有什么意义。这样做的目的是方便存储、传输、分享数据,人和机器都可以很方便的阅读。XML 和 HTML 有一个明显的区别就是:HTML 的标签都是预定义的,你不可以自己随便增加,但是XML可以。
- XHTML: 可扩展超文本标记语言
XHTML 就是以 XML 的语法形式来写 HTML。存在一些强制的要求,如下:
1、必须包含一个文件头声明 <!DOCTYPE>
2、所有元素名必须小写
3、所有空元素必须关闭
4、所有属性名必须小写
5、所有属性值必须加引号
6、所有布尔值属性必须加上属性值
3、HTML5支持哪些新特性、移除了哪些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分HTML和HTML5?
新特性:
- HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。
- 拖拽释放(Drag and drop) API
- 语义化更好的内容标签(header,nav,footer,aside,article,section)
- 音频、视频API(audio,video)
- 画布(Canvas) API
- 地理(Geolocation) API
- 本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
- sessionStorage 的数据在浏览器关闭后自动删除
- 表单控件,calendar、date、time、email、url、search
- 新的技术webworker, websocket, Geolocation
移除元素:
- 纯表现的元素:basefont,big,center,font, s,strike,tt,u;
- 对可用性产生负面影响的元素:frame,frameset,noframes;
支持HTML5兼容
- 使用成熟的框架、使用最多的是html5shim框架
<!--[if lt IE 9]>
<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]-->
区分HTML和HTML5: DOCTYPE声明、新增的结构元素、功能元素