亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【九月打卡】第12天 前端工程師2022版 就業必備基礎技術面試分析

课程名称: JS基础-异步

课程章节:Javascript面试课

课程讲师: 双越

课程内容:


    学习课程之前,我们先来看一下这节会遇到哪些面试题?

        1、异步和同步的区别是什么?

        2、手写 Promise 加载一张图片。

        3、前端使用异步的场景有哪些?

        4、setTimeout 笔试题。


    

接下来我们一起看看知识点有哪些?


单线程
◆JS是单线程语言,只能同时做一件事儿
◆浏览器和nodejs已支持JS启动进程,如Web Worker
◆JS和DOM渲染共用同一个线程,因为JS可修改DOM结构
◆遇到等待(网络请求,定时任务)不能卡住
◆需要异步
◆回调callback函数形式
异步和同步
◆基于JS是单线程语言
◆异步不会阻塞代码执行
◆同步会阻塞代码执行


◆网络请求,如ajax图片加载
◆定时任务,如setTimeout

https://img1.sycdn.imooc.com/632420170001043b09830341.jpg

https://img4.sycdn.imooc.com/632420170001cda908700440.jpg

定时器

https://img3.sycdn.imooc.com/6324205e00017aa812550377.jpg


最后,复习一下前面提到的面试题

1.异步和同步的区别是什么?

①异步基于JS是单线程语言

②异步不会阻塞代码执行

③同步会阻塞代码执行

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 url = 'https://img4.sycdn.imooc.com/623845880001403311101110-140-140.jpg'

// loadImg(url).then(img => {
//     console.log(img.width);
//     return img
// }).then(img => {
//     console.log(img.height);
// }).catch(ex => { console.error(ex); })

// 多图片加载
const url1 = 'https://img4.sycdn.imooc.com/623845880001403311101110-140-140.jpg'
const url2 = 'https://img1.sycdn.imooc.com/54584e2c00010a2c02200220-160-160.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.前端使用异步的场景有哪些?

①网络请求,如ajax图片加载

②定时任务,如setTimeout

4.setTimeout笔试题

https://img2.sycdn.imooc.com/632420f600013fb907170683.jpg

打印的依次是:1 3 5 4 2




點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
Web前端工程師
手記
粉絲
6
獲贊與收藏
6

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消