js基础知识03【前端面试】
单线程
js是单线程语言
js与DOM渲染之能用一个线程
异步
不会阻塞代码执行
使用场景
1.网络请求
2.定时任务
回调地狱callback hell
问题
1.同步和异步的区别
2.手写promise加载图片
function loadImg(src) { const p = new Promise( (resolve, reject) => { const img = document.createElement('img') img.onload = () => { resolve(img) } img.onerror = () => { const err = new Error(`图片加载失败 ${src}`) reject(err) } img.src = src } ) return p } const url1 = 'https://img.mukewang.com/5a9fc8070001a82402060220-140-140.jpg' const url2 = 'https://img3.mukewang.com/5a9fc8070001a82402060220-100-100.jpg' loadImg(url1).then(img1 => { console.log(img1.width) return img1 // 普通对象 }).then(img1 => { console.log(img1.height) return loadImg(url2) // promise 实例 }).then(img2 => { console.log(img2.width) return img2 }).then(img2 => { console.log(img2.height) }).catch(ex => console.error(ex))
3.异步使用场景
网络请求
定时任务

浙公网安备 33010602011771号