美文网首页WEB前端程序开发程序员我爱编程
WEB前端学习JS灵魂之问:JS为什么是单线程的?

WEB前端学习JS灵魂之问:JS为什么是单线程的?

作者: web前端小辰 | 来源:发表于2018-05-27 17:53 被阅读80次

    Web前端开发工程师是一个很新的职业,是从事Web前端开发工作的工程师。主要进行网站开发,优化,完善的工作。网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览为主。

    给你学习路线,html-css-js-ajax-jq-html5-css3-bootstrap-vue.js-node.js-react.jd

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

    小编推荐一个学Web前端的学习裙【 五四七,三零二,三八三 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

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

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

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

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

    小编推荐一个学Web前端的学习裙【 五四七,三零二,三八三 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

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

    相关文章

      网友评论

        本文标题:WEB前端学习JS灵魂之问:JS为什么是单线程的?

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