2018web前端面试题总结 (4)


window.event.returnValue = false
}
}
事件如何先捕获后冒泡?
在DOM标准事件模型中,是先捕获后冒泡。但是如果要实现先冒泡后捕获的效果,
对于同一个事件,监听捕获和冒泡,分别对应相应的处理函数,监听到捕获事件,先暂缓执行,直到冒泡事件被捕获后再执行捕获事件。

哪些事件不支持冒泡事件:鼠标事件:mouserleave mouseenter
焦点事件:blur focus
UI事件:scroll resize


六、事件委托(提高性能)
简介:事件委托指的是,不在事件的(直接dom)上设置监听函数,而是在其父元素上设置监听函数。通过事件冒泡,父元素可以监听到子元素上事件的触发
通过判断事件发生元素DOM的类型,来做出不同的响应。
举例子: 最经典的就是ui和li标签的事件监听,比如我们在添加事件的时候,采用事件委托机制,不会在li标签上直接添加,而是在ul父元素上添加
好处:可以比较合适动态元素的绑定,新添加的子元素也会监听函数,也可以有事件触发机制

七、js的new操作符做了什么?
new操作符创建了一个空对象,这个对象原型指向构造函数的prototype,执行构造函数后返回这个对象(return this)。
如果不要父类的属性跟方法,在函数的prototype上去new这个父类。

八、改变函数内部this指针的指向函数(bind,apply,call)
通过apply和call改变函数的this指向,他们两个函数的第一个参数都是一样的表示要改变指向的那个对象,第二个参数,apply是数组,而call则是arg1,arg2...这种形式。

 

bind 一个是返回一个函数,并不会立即执行 第二个是带参数(第一个参数要指向的this,后面的的参数用来传递

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyjfsg.html