美文网首页
JavaScript-总结篇之异步和单线程

JavaScript-总结篇之异步和单线程

作者: greenteaObject | 来源:发表于2017-07-05 12:48 被阅读0次
    • 同步和异步的区别是什么?分别举一个同步和异步的例子
    • 一个关于setTimeout的问题
    • 前端使用异步的场景有哪些

    异步

    异步,就是脚本的执行不会发生阻塞,后面该执行什么就执行什么,不会因为当前等待着而不往下运行.只要遇到异步的场景,那么这个异步的部分就会单独的拿出来,在整个程序执行完之后再执行异步部分

    //异步
    console.log(100)
    setTimeout(function(){
      console.log(200)
    },1000)
    console.log(300)
    

    执行第一行,打印100
    执行setTimeout后,传入setTimeout的函数会被暂时存起来,不会立即执行(单线程,不能同时做两件事)
    执行最后一行,打印300
    待所有程序执行完,处于空闲状态时,会立刻看有没有暂存起来的要执行
    如果有,则执行暂存的部分

    //同步
    console.log(100)
    alert(200)
    console.log(300)
    
    使用异步的场景
    • 定时任务: setTimeout setInterval
    • 网络请求: ajax请求,动态<img>加载
    • 事件绑定

    举一个ajax请求的例子

    console.log('start')
    $.get('./data.json',function(data){
      console.log(data)
    })
    console.log('end')
    

    单线程

    所谓单线程,说白了就是同一时间只能干一件事,一心不能二用...

    一些总结和概括

    同步和异步的区别在于同步会阻塞代码执行,而异步不会
    alert是同步,setTimeout是异步

    相关文章

      网友评论

          本文标题:JavaScript-总结篇之异步和单线程

          本文链接:https://www.haomeiwen.com/subject/gvsfhxtx.html