这是我参与「第四届青训营 」笔记创作活动的的第4天
Bom是浏览器对象。它提供与浏览器的交互5大属性。
分别是:document,history,screen,navigator,location
JavaScript操作网页的接口,全称为“文档对象模型(Document Object Model)。
有这几个概念:文档、元素、节点
整个文档是一个文档节点
每个标签是一个元素节点
包含在元素中的文本是文本节点
元素上的属性是属性节点
文档中的注释是注释节点
DOM本质 DOM树: DOM树是结构,树是由DOM元素和属性节点组成的,DOM的本质是把html结构化成js可以识别的树模型;
有了树模型,就有了层级结构,层级结构是指元素和元素之间的关系父子,兄弟。
原型:
js中万物皆为对象,每一个对象都有自己的属性
原型的出行是为了让多个对象可以共享一个属性或者方法\
prototype
每个函数都有一个prototype属性,被称为显示原型
_ proto _
每个实例对象都会有_ proto 属性,其被称为隐式原型; 每一个实例对象的隐式原型 proto _属性指向自身构造函数的显式原型prototype
constructor
每个prototype原型都有一个constructor属性,指向它关联的构造函数。
原型链:
获取对象属性时,如果对象本身没有这个属性,那就会去他的原型__proto__上去找,如果还查不到,就去找原型的原型, 一直找到最顶层(Object.prototype)为止。Object.prototype对象也有__proto__属性值为null
DOM事件两种类型 事件类型分两种:事件捕获、事件冒泡。
事件捕获就是由外往内,从事件发生的顶点开始,逐级往下查找,一直到目标元素。 事件冒泡就是由内往外,从具体的目标节点元素触发,逐级向上传递,直到根节点。
DOM事件的事件流(事件传播) 事件流就是,事件传播过程。 DOM完整的事件流包括三个阶段:事件捕获阶段、目标阶段和事件冒泡阶段。 事件通过捕获到达目标元素,这个时候就是目标阶段。 从目标节点元素将事件上传到根节点的过程就是第三个阶段,冒泡阶段。
事件捕获的具体流程 当事件发生在 DOM元素上时,该事件并不完全发生在那个元素上。在捕获阶段, 事件从window开始,之后是document对象,一直到触发事件的元素。
事件冒泡的具体过程 当事件发生在DOM元素上时,该事件并不完全发生在那个元素上。在冒泡阶段,事件冒泡, 或者事件发生在它的父代,祖父母,直到到达window为止。