JS灵魂之问:JS为什么是单线程的?

  • 时间:2018-06-06 01:45 作者:前端科技 来源:前端科技 阅读:125
  • 扫一扫,手机访问
摘要:相信每个前台开发者都知道JavaScript是单线程的。为了避免脚本执行阻塞页面加载,我们都知道要把js脚本放在HTML尾部,先加载CSS样式,而后再执行JavaScript脚本。可是为什么要把JavaScript设计为单线程语言呢?多线程不是能充分利使用CPU资源,加快执行速度吗?Brendan

相信每个前台开发者都知道JavaScript是单线程的。为了避免脚本执行阻塞页面加载,我们都知道要把js脚本放在HTML尾部,先加载CSS样式,而后再执行JavaScript脚本。可是为什么要把JavaScript设计为单线程语言呢?多线程不是能充分利使用CPU资源,加快执行速度吗?Brendan Eich创造JavaScript的时候是怎样想的呢?

JS灵魂之问:JS为什么是单线程的?


JavaScript诞生的目的就是在网页上执行脚本程序。作为浏览器脚本语言,JavaScript的主要使用途是与使用户互动,以及操作DOM。这决定了它只可以是单线程,否则会带来很复杂的同步问题。考虑到网络和计算机的影响,这种同步问题很难很难处理。

比方,两个线程都去操作页面元素,那以哪个线程的操作结果为准呢?所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核心特征,将来也不会改变。

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


JS灵魂之问:JS为什么是单线程的?

所以说JavaScript单线程的设计是因为它的功可以定位决定的,作为在浏览器上执行的脚本,为了保持可开发性,可维护性,单线程就是最好的选择。

假如你觉得本篇文章对你有帮助,欢迎点赞,转发。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】2019蚂蚁金服面试总结(Java方向)(2019-04-18 16:19)
【系统环境|】notepad++ 三位数字正则替换规则(2019-04-12 23:02)
【系统环境|服务器应用】网络工程师跨交换机的Vlan配置与管理知识(2019-03-26 02:14)
【系统环境|服务器应用】最小化的定制版linux系统:CoreOS(2019-03-26 02:14)
【系统环境|服务器应用】分布式系统面试题:分布式事务处理方案?(2019-03-26 02:13)
【系统环境|服务器应用】带着网关去旅行(系列二):防止vps上ssh端口被恶意扫描(2019-03-26 02:13)
【系统环境|服务器应用】美团iOS面试总结(2019-03-26 02:13)
【系统环境|服务器应用】百度iOS面试总结(2019-03-26 02:13)
【系统环境|服务器应用】Java大佬之学习历程(三)(2019-03-26 02:13)
【系统环境|服务器应用】Android面试集锦系列(38)——在项目中使用AsyncTask会有什么问题吗?(2019-03-26 02:13)
手机二维码手机访问领取大礼包
返回顶部