北京沣登科技发展公司

J***ascript运算执行原理,j***ascript的执行原理

大家好,今天小编关注到一个比较意思的话题,就是关于javascript运算执行原理问题,于是小编就整理了3个相关介绍Javascript运算执行原理的解答,让我们一起看看吧。

  1. js文件怎么运行?
  2. javascript的执行顺序是怎样的?
  3. html如何运行js?

js文件怎么运行

js怎么运行?

js并不是一个简单语言,我们不能使用其他语言程序来独立运行js,运行js首先要有一个js读写文件的支持功能,其次js脚本是依赖于浏览器运行,不能单独使用。

Javascript运算执行原理,javascript的执行原理div>
图片来源网络,侵删)

一般情况下,我们都把js放在html中,通过运行html代码实现js的运行,如果你的电脑安装node.js,我们也可以使用node.js来运行js文件。

js动态程序的实现有两种方式,第一是二进制方式,第二是脚本方式,二进制实现的就是把我们编写好的程序直接进行编译然后变成机器可以识别的代码,然后机器再去执行,二进制方式有一定的弊端,我们只能看到执行和使用,并不能看到程序本身的内容

脚本实现就是执行一条条的命令,比如我们用文本编辑器查看编辑,当程序执行的时候,会有系统发出一个编辑器,并且翻译成机器可以识别的,按照相关程序依次执行,脚本执行要比二进制执行效率要高的多。

Javascript运算执行原理,javascript的执行原理
(图片来源网络,侵删)

javascript的执行顺序是怎样的?

这个问题其实很复杂,搞清楚需要花点时间,我简单的说一下:

1、首先js本身是一种单线程语言,意味着它同一时间只做一件事情,代码也会从上到下顺序执行

2、js在执行之前有个预处理的过程,会把var声明变量函数声明提升到执行上下文的顶部,所以在它们被定义之前是可以拿到它们的声明的,这点需要注意

Javascript运算执行原理,javascript的执行原理
(图片来源网络,侵删)

3、js在执行过程中,会遇到同步异步两种任务

4、同步任务会等到它有执行结果才会继续往下执行

5、异步任务比如IO请求事件定时器等,js的主线程不会等待它们的运行结果,就会继续往下走(有些异步任务依赖浏览器的多线程能力比如请求等)

6、这些异步任务会被放入任务队列,主线程的回调函数会被挂起,等到主线程执行完毕,会去循环任务队列中是否有完成的异步任务,如果有就会把它推入主线程并执行相应的回调函数,直到任务队列被清空

7、任务队列又分为宏任务和微任务,宏任务包括script整体代码、定时器等,微任务包括

process.nextick

、promise等

8、js引擎首先从宏任务中取出第一个任务,执行完毕后,将微任务中的所有任务取出,按顺序全部执行;按这样的节奏循环往复,直到两个队列中的任务都取完。

我说的比较简单,自己可以去网上搜索更详细的答案!

html如何运行js?

html运行JS的方式有:通过引入外部的JS文件来调用,一般将JS写在一个外部文件中,封装起来,然后在调用,举个实例

&lt;html&[_a***_];<head><style>#div1{width:460px;height:200px;position:absolute;}</style></head><scripttype='text/Javascript'src='js文件的地址'></script><body><divid='div1'><p>我是测试文字</p></div> 2.在Js中通过<script></script>这个标签,将JS写在里面也是可以的,请看代码:

<html><head><style>#div1{width:460px;height:200px;position:absolute;}</style><script>varoDiv=document.getElementById('div1'

)varLet=Div.style.left;//上下的值,varRig=Div.style.top;</script></head><body><divid='div1'><p>我是测试文字</p></div></body></html>

到此,以上就是小编对于J***ascript运算执行原理的问题就介绍到这了,希望介绍关于J***ascript运算执行原理的3点解答对大家有用。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.fengdengtech.com/post/72364.html

分享:
扫描分享到社交APP