jsJavascript的事件流模型都有什么

JavaScript的事件流模型主要涉及到两个概念:事件捕获(Event Capturing)和事件冒泡(Event Bubbling)。
事件捕获:在事件发生时,事件会从顶层(如 document)向下(如某个特定的元素)逐级传递,直到找到注册事件的元素,这一过程叫做事件捕获。在事件捕获阶段,事件对象会首先被根元素捕获,然后传递给最接近事件源的子元素。
事件冒泡:如果事件处理程序没有在目标元素上被找到,或者事件处理程序被调用并返回了false(取消了事件),那么事件会从目标元素开始,向上逐级传递回根元素,这一过程叫做事件冒泡。在事件冒泡阶段,事件对象会从目标元素开始,逐级向上传递给父元素。
此外,还有一个叫做"DOM0级事件模型"的概念,这是最早的事件模型,只支持冒泡阶段。在这个模型中,所有的事件都从目标元素开始,向上冒泡到根元素。
现代浏览器为了兼容性,通常都支持这三种模型。然而,由于历史原因,不同的事件可能在不同的模型中表现不同。例如,focus和blur事件只冒泡而不捕获,而mouseover和mouseout事件则既冒泡又捕获。
在实际开发中,可以通过设置元素的 addEventListener 方法的第三个参数来选择是否在捕获阶段或冒泡阶段注册事件处理程序。如果这个参数为 true,则在捕获阶段注册;如果为 false 或省略,则在冒泡阶段注册。

先解释下事件流是什么:当你在页⾯触发⼀个点击事件后,页⾯上不仅仅有⼀个元素响应该事件⽽是多个元素响应同⼀个事件,因为元素是在容器中的。事件发⽣的顺序就是事件流,不同的浏览器对事件流的处理不同。
“事件冒泡”:事件开始由最具体的元素接收,然后逐级向上传播
“事件捕捉”:事件由最不具体的节点先接收,然后逐级向下,⼀直到最具体的
“DOM事件流”:三个阶段:事件捕捉,⽬标阶段,事件冒泡
添加 删除 替换 插⼊到某个接点的⽅法?
(1)创建节点
createElement() //创建⼀个具体的元素
createTextNode() //创建⼀个⽂本节点
(2)添加、移除、替换、插⼊
appendChild() //最后1个⼦节点之后添加⼀个新⼦节点
removeChild() //删除⼦节点
replaceChild() //替换⼦节点
insertBefore() //在已有的⼦节点前插⼊⼀个新节点
(3)查找
getElementsByTagName() //通过标签名称
getElementsByName() //通过元素的Name属性的值
getElementById() //通过元素Id,唯⼀性
遍历A节点的⽗节点下的所有⼦节点
这题考查原⽣的js操作dom,属于⾮常简单的基础题,但长时间使⽤mvvm框架,可能会忘记.

你可能感兴趣的:(javascript)