前端面试题(六)

28. JavaScript 事件循环机制

  • 什么是事件循环(Event Loop)?

    • 事件循环 是 JavaScript 中的执行机制,用来处理异步操作。JavaScript 是单线程的,它通过事件循环来管理执行栈中的同步任务和任务队列中的异步任务。
  • 事件循环的工作流程是什么?

    1. 执行栈(Call Stack):同步代码会依次压入执行栈,并按顺序执行。执行完一个任务后从栈中弹出,继续下一个任务。
    2. 任务队列(Task Queue):异步操作(如 setTimeoutPromise)会将回调放入任务队列中等待执行。
    3. 事件循环:事件循环不断检查执行栈是否为空,若为空,会从任务队列中取出下一个任务,压入执行栈中执行。
  • 微任务和宏任务的区别?

    • 宏任务(Macro Task):包括 setTimeoutsetInterval、DOM 事件、HTTP 请求等,这些任务在每次事件循环结束后会被放入任务队列中等待执行。
    • 微任务(Micro Task):包括 Promise.thenMutationObserver 等,微任务的执行优先级高于宏任务,它们会在当前任务执行完之后立即执行,而不是等待下一个事件循环。
  • 代码执行顺序示例

    console.log('1');  // 同步任务,立即执行
    setTimeout(() => console.log('2'), 0);  // 宏任务,下一次事件循环执行
    Promise.resolve().then(() => console.log('3'));  // 微任务,当前任务完成后执行
    console.log('4');  // 同步任务,立即执行
    
    // 输出顺序为:1, 4, 3, 2
    

29. JavaScript 异步编程

  • JavaScript 中有哪些处理异步编程的方法?

    1. 回调函数(Callback):通过将一个函数作为参数传递给另一个函数,在异步操作完成后调用该回调函数。

      setTimeout(() => {
             
        console.log('异步操作'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小于负无穷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值