JS运行机制和存储

收藏

一、被忽视的内存管理


    JavaScript不像C、C++等语言——程序员必须通过调用内存管理接口,比如 malloc()和free(),自己手动分配和释放内存。


    JS引擎会“自动”管理内存。也就是说,JS在创建变量(对象,字符串等)时分配内存,并且在执行完毕,将不再使用的变量的内存空间释放。这种自动化的管理方式,使得JS入门简单、开发快,但同时也让很多人忽视了对JS内存的管理与优化。


二、JS工作原理


    每个浏览器都有自己的引擎,如谷歌有 V8。

     

    不管怎样,HTML,CSS,JS都是在浏览器中渲染执行的,确切的说是浏览器内核做的事情,渲染引擎和JavaScript执行引擎。


三、JS代码如何运行

图片1.png

    几乎所有JavaScript开发人员都在使用的API(例如“ setTimeout”)。但是,引擎不提供这些API。

 

    我们拥有由浏览器提供的称为Web API的东西,例如DOM,AJAX,setTimeout等。

 

    然后,我们有了非常流行的事件循环和回调队列。


四、JavaScript内存的生命周期


    内存分配:分配你所需要的暂时使用内存大小,当申明变量、函数、对象的时候,系统会自动为他们分配内存。

 

    内存使用:即读写内存,在每次创建字变量、函数、对象的时候,程序会分配新内存来存储实体。

 

    内存回收:对于不需要使用的内存将其释放。


五、栈内存、堆内存

图片2.png

    栈内存:

         1、基本类型

         2、按值访问

         3、存储的值大小固定

         4、系统会自动分配内存空间

         5、空间小,运行效率高

         6、先进后出

 

    堆内存:

         1、引用类型

         2、按照引用访问

         3、存储大小不固定

         4、内存分配:由代码进行分配

         5、空间大,运行效率较低

         6、无序存储(根据引用直接获取)



 


评论(

您还未登录,请先去登录
表情
查看更多

相关作者

  • 获取点赞0
  • 文章阅读量133

相关文章

暂无相关文章

联系小鹿线

咨询老师

咨询老师

扫码下载APP