谈一谈null和undefined
- Undefined类型只有一个值,即undefined。我们不会对一个值设置undefined,一般都是出现错误的时候,才会被我们打印出来。
- null 类型是第二个只有一个值的数据类型,这个特殊的值是 null,null 值表示一个空对象指针,而这也正是使用 typeof 操作符检测null时会返回"object"的原因。
undefined出现的场景:
1. 变量被声明了,但没有赋值时,就等于undefined。
2. 调用函数时,应该提供的参数没有提供,该参数等于undefined。
3. 对象没有赋值的属性,该属性的值为undefined。
4. 函数没有返回值时,默认返回undefined。
null出现的场景:
1. 作为函数的参数,表示该函数的参数不是对象。
2. 作为对象原型链的终点。
3. 如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。
4. 将一个对象变为垃圾对象的时候,设置变量的值为null。
什么是DOM?
- DOM document object model 文档对象模型。
- 是W3C指定的一套规范,规定了js脚本如何和HTML进行交互。
- DOM规定了一系列的标准的接口,允许开发人员使用标准的方式操作网页的结构、内容、样式和行为。
什么是节点?节点类型有哪些?
- 在网页中 所有的内容和对象 都被称作为节点。
- 节点是文档的最基本的组成单元,并且节点有很多的类型,并组成了完整的DOM树结构。
- 常见节点:比如 元素节点 属性节点 文档节点 注释节点 文本节点等等。
说出获取元素所有的方式
- 通过标签名获取 是一个集合: getElementsByTagName(“元素名”)。
- 通过id获取 单个元素: + getElementById(“元素名”)。
- 通过类名获取是一个集合: + getElementsByClassName(“元素名”)。
- selectors API:使用css选择器的方式选择元素。
- querySelector(“选择器”) 单个元素
- querySelectorAll(“选择器”) 一个集合(nodeList对象)
- 新旧方法的区别:
- 新方法获取的元素是静态的。
- 旧方法获取的元素是动态的。
- 静态/动态:获取的元素集合是否跟随节点的改变而改变。
获取html body head标签的方法
- js提供了获取html body head的简便方法。
- document.body: 获取body元素。
- documemt.head:获取head元素
- document.documentElement:获取html元素
兼容性获取第一个子元素的封装
function getFirstChild(obj) {
return obj.firstElementChild || obj.firstChild;
}