简单谈谈JavaScript的同步与异步

 更新时间:2015年12月31日 08:50:03   投稿:hebedich  
这篇文章主要介绍了简单谈谈JavaScript的同步与异步的相关资料,需要的朋友可以参考下

1.手绘一张图说明。

2.为什么JavaScript是单线程(这里引用阮一峰老师的话)

JavaScript的单线程,与它的用途有关。

作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。

这决定了它只能是单线程,否则会带来很复杂的同步问题。

比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?

所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核心特征,将来也不会改变。

为了利用多核CPU的计算能力,HTML5提出Web Worker标准,允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制,且不得操作DOM。

所以,这个新标准并没有改变JavaScript单线程的本质。

传送门:JavaScript运行机制之事件循环(Event Loop)详解

3.JavaScript的异步体现在哪

如一开始的图,个人认为左边主线程就是同步,左边事件队列(消息队列)就是异步。

当然JavaScript中的异步有很多:

Ajax(XMLHttpRequest)
Image Tag,Script Tag,iframe(原理类似)
setTimeout/setInterval
CSS3 Transition/Animation
postMessage
Web Workers
Web Sockets
and more…

相关文章

  • 用js调用迅雷下载代码的二种方法

    用js调用迅雷下载代码的二种方法

    用js调用迅雷下载代码的二种方法,需要的朋友可以参考一下
    2013-04-04
  • js字符串转json对象的四种实现方法

    js字符串转json对象的四种实现方法

    使用ajax的开发项目过程中,经常需要将json格式的字符串返回到前端,前端解析成js对象(JSON),下面这篇文章主要给大家介绍了关于js字符串转json对象的四种实现方法,需要的朋友可以参考下
    2023-04-04
  • JS出现失效的情况总结

    JS出现失效的情况总结

    本篇文章主要对JS出现失效的情况进行总结。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • JavaScript 禁止用户保存图片的实现代码

    JavaScript 禁止用户保存图片的实现代码

    这篇文章主要介绍了JavaScript 禁止用户保存图片的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • js的indexOf方法使用

    js的indexOf方法使用

    indexOf() 方法可返回数组中某个指定的元素位置,本文就来介绍一下js的indexOf方法使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2023-05-05
  • JSON stringify方法原理及实例解析

    JSON stringify方法原理及实例解析

    这篇文章主要介绍了JSON stringify方法原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • 80%应聘者都不及格的JS面试题

    80%应聘者都不及格的JS面试题

    超过80%的候选人对下面这道JS面试题的回答情况连及格都达不到。这究竟是怎样神奇的一道JS面试题?他考察了候选人的哪些能力?对正在读本文的你有什么启示?
    2017-03-03
  • 关于微信小程序map组件z-index的层级问题分析

    关于微信小程序map组件z-index的层级问题分析

    这篇文章主要给大家介绍了关于微信小程序map组件z-index的层级问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用微信小程序具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • ES2020 已定稿,真实场景案例分析

    ES2020 已定稿,真实场景案例分析

    许多新的特性被提议包括在 ES2020版本中。好消息是这些已经已经敲定。 现在,我们获得了最终定稿的功能清单,它们将在被批准发布之后出现在备受期待的 ES2020 中,具体内容详情,大家可以阅读下本文
    2020-05-05
  • 详解JS函数stack size计算方法

    详解JS函数stack size计算方法

    本篇文章给大家分享了关于JS函数中stack size计算方法的相关知识点,对此有需要的朋友可以跟着学习下。
    2018-06-06

最新评论