经典面试题
33.HTML5 为什么只需要写 <!DOCTYPE HTML>?
- HTML5 不基于 SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行);
- 而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。
名词解释 - SGML: 标准通用标记语言。规定了在文档中嵌入描述标记的标准格式,指定了描述文档结构的标准方法。XML和HTML都由此引出。
- DTD:文档类型定义。
- HTML4.1有三种<!DOCTYPE>声明,分别是严格模式、过渡模式和框架模式。
- 严格模式包含有HTML元素和属性,但不包括展示性的和弃用的元素,不允许框架集。
- 过渡模式包含所有HTML元素和属性,包括展示性和弃用的元素。不允许框架集。
- 框架模式等同于过渡模式,但允许框架集内容。
- HTML5只有一种格式,就是<!DOCTYPE HTML>。
34.页面导入样式时,使用link和@import有什么区别?
- link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS。
- link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。
- link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。
- link支持使用Javascript控制DOM去改变样式;而@import不支持。
35.介绍一下你对浏览器内核的理解?
- 主要分成两部分:渲染引擎(layout engineer或Rendering Engine)和JS引擎。
- 渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。
- JS引擎:解析和执行javascript来实现网页的动态效果。最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。
36.IE和DOM事件流的区别?
- IE->事件冒泡流。即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档)。
- Netscape->事件捕获流。思想是不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件。其用意在于事件到达预定目标之前捕获它。
- “DOM2级事件”规定的事件流包括三个阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段。
思考题
17.前端安全方面有没有了解?CSRF 如何攻防?
- 通过 referer、token 或者 验证码 来检测用户提交。
- 尽量不要在页面的链接中暴露用户隐私信息。
- 对于用户修改删除等操作最好都使用post 操作 。
- 避免全站通用的cookie,严格设置cookie的域。
传送门: http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
18.说说你对 SVG 理解?
传送门: http://blog.csdn.net/qq522935502/article/details/45073897