Promise 基础
Promise 概念
then()
错误处理
Promise 值穿透
finally()
包装Pomise 对象
并发方法
promise 基础直接参考 阮一峰《ECMAScript 6 入门》
About 27 min
promise 基础直接参考 阮一峰《ECMAScript 6 入门》
详情可参考:ES6 入门教程 - 阮一峰
new操作符作用: 创建一个给定构造函数的实例
/**
\* @param {Function} construct 构造函数
\* @param {any} args 其余参数
\* @return obj 绑定了构造函数上下文的空对象
*/
function myNew(construct, ...args) {
let obj = {} //创建空对象
obj.__proto__ = construct.prototype //将空对象的[prototype]原型指向构造函数的原型对象
construct.apply(obj, args) //将构造函数的执行上下文this绑定到空对象
return obj
}
//-----------------------------------------使用-------------------------------------------------------
function Person(name, age) {
this.name = name
this.age = age
}
let person1 = myNew(Person, 'joker', 20)
console.log(`name is ${person1.name}, age is ${person1.age}`)
概念:懒加载也叫延迟加载,指的是在长网页中延迟加载图片的时机,当用户需要访问时,再去加载。
作用:
适用场景:图片很多,页面很长的场景
懒加载图示:
实现原理:
<img>
标签,浏览器是否发起请求图片是根据<img>
的 src 属性,所以实现懒加载的关键就是,在图片没有进入可视区域时,先不给<img>
的 src 赋值,这样浏览器就不会发送请求了;实现步骤:
判断图片是否进入可视区域:
方式2:使用 JS 监听并计算。
让在浏览器可视区域的图片显示,可视区域外的不显示,所以当图片距离顶部的距离top-height等于可视区域h和滚动区域高度s之和时说明图片马上就要进入可视区了,就是说当 top-height<=s+h
时,图片在可视区
使用 API:
document.body.clientWidth
;document.body.clientHeight
;document.body.offsetWidth (包括边线的宽)
;document.body.offsetHeight (包括边线的宽)
;document.body.scrollWidth
;document.body.scrollHeight
;document.body.scrollTop
;document.body.scrollLeft
;window.screenTop
;window.screenLeft
;window.screen.height
; window.screen.width
;window.screen.availHeight
;HTMLElement.offsetTop
为只读属性,它返回当前元素相对于其 offsetParent 元素的顶部的距离。window.innerHeigh
t:浏览器窗口的视口(viewport)高度(以像素为单位);如果有水平滚动条,也包括滚动条高度。