事件委托
- 事件委托本质上是利用了浏览器事件冒泡的机制。因为事件在冒泡过程中会传递到父节点;因此可以把子节点的监听函数定义在父节点上(这样父节点就是绑定事件的节点),父节点可以通过事件对象获取目标节点(就是触发事件的节点),由父节点的监听函数统一处理多个子元素的事件,这种方式就是事件委托。
- 使用事件委托可以不必为每一个子元素都绑定一个监听事件,这样减少了内存上的消耗,此外,使用事件委托还可以实现事件的动态绑定,比如说新增一个子节点,并不需要为它添加一个监听事件,事件委托会直接交给父元素的监听函数来处理。
原型
- 在JS中,每个对象都有一个原型,原型是一个对象,它包含了共享的属性和方法,可以被其他对象继承和访问。
- 当你访问一个对象的属性和方法时,如果该对象自身没有这个属性或方法,JS会去它的原型链上查找,原型链是一个连接对象和原型的链式结构,每个对象都有一个隐式指向其原型的链接
promise
- promise是异步编程的一种解决方案,本质上是一个构造函数,new一个promise对象用来封装一个异步操作可以获取其成功或失败的值,promise实例被创建后回调函数会立即执行。
- promise有三种状态:pending(等待中)、fulfilled(成功的)、rejected(失败的) 状态一旦改变就不会再变。
- promise的.then()和.catch()操作都能返回一个Promise对象
- promise可以实现在异步操作执行完后,用链式调用的方式执行回调函数从而解决回调地狱的问题;promise可以支持多个并发的请求,获取并发请求的数据。promise可以解决异步的问题,本身不能说 promise 是异步的
- promise.all()方法
- promise.race()方法