前端常见面试题
1、关于解构赋值
ES6 内部使用严格相等运算符(===),判断一个位置是否有值。所以,只有当一个数组成员严格等于undefined
,默认值才会生效。
let [x, y = 'b'] = ['a', undefined]; // x='a', y='b'
2、W3C标准
W3C(万维网联盟),万维网联盟标准不是某一个标准,而是一些列标准的集合。
网页主要有三部分组成:结构(Structure)、表现(Presentation)、行为(Behavior)。对应的标准也有三方面:结构化标准主要包括XHTML和XML,表现标准语言主要包括CSS、行为标准主要包括(如W3C DOM)、ECMAScript等。这些标准大部分是W3C起草发布,也有一是其他标准组织制定的标准,比如ECMAScript 的ECMAScript的标准。
制定标准是让浏览器遵守标准,让程序员按照标准来编写程序,由此让程序能够支持所有浏览器,能够满足尽可能多的用户。
2.1、<!DOCTYPE> 声明
<!DOCTYPE> 声明不是 HTML 标签,它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。<!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前。
在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。HTML5 不基于 SGML,所以不需要引用 DTD。:请始终向 HTML 文档添加 <!DOCTYPE> 声明,这样浏览器才能获知文档类型。
在 HTML 4.01 中有三种 <!DOCTYPE> 声明。在 HTML5 中只有一种:
<!DOCTYPE html>
其它版本的HTML的 DOCTYPE 声明请参考:http://www.w3school.com.cn/tags/tag_doctype.asp
2.2、<meta> 标签
<meta> 元素提供了有关页面的信息,比如针对搜索引擎和更新频度的描述和关键词。<meta> 标签位于文档的头部,在HTML中没有结束标签,标签不包含任何内容,而是在标签的属性定义与文档相关联的名称/值对。
在 HTML 4.01 中定义字符集:
<meta http-equiv="content-type" content="text/html; charset="UTF-8">
在 HTML 5 中有一个新的 charset 属性,它使字符集的定义更加容易,使用方法:
<meta charset="UTF-8">
详情参考:http://www.w3school.com.cn/tags/tag_meta.asp
其它标准请参考:https://blog.****.net/erdfty/article/details/81363893
3、DOM
DOM 是 Document Object Model(文档对象模型)的缩写。
W3C DOM 标准被分为 3 个不同的部分:
- 核心 DOM - 针对任何结构化文档的标准模型
- XML DOM - 针对 XML 文档的标准模型
- HTML DOM - 针对 HTML 文档的标准模型
3.1、HTML DOM
HTML DOM 是:
- HTML 的标准对象模型
- HTML 的标准编程接口
- W3C 标准
HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。换言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。
在 HTML DOM 中,所有事物都是节点。
根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:
- 整个文档是一个文档节点
- 每个 HTML 元素是元素节点
- HTML 元素内的文本是文本节点
- 每个 HTML 属性是属性节点
- 注释是注释节点