• 内存空间的详细简答


    堆(heap),栈(stack)与队列(queue)

    队列:是先进先出,

    1 变量对象与基础数据类型

      JavaScript的执行上下文之后,会创建一个叫做变量对象的特殊对象,JavaScript的基础数据类型往往保存在变量对象中

    注:严格意义上变量对象放在堆内存中;但是由于变量对象的特殊只能,我们在理解时仍然需要将其于堆内存区分开来

      基础数据类型都是一些简单的数据段,JavaScript中有5种基础数据类型:Undefined、Null、Boolean、Number、String。基础数据类型都是按值访问,因为我们可以直接操作保存在变量中的实际的值。

    2,内存空间管理

      因为JavaScript具有自动垃圾收集机制,所以我们在开发时候好像不用关心内存的使用问题;内存的分配与回收完全实现了自动管理,但是还是需要了解好内存机制以便提高性能,从而写出更加优秀的代码

    在JavaScript中,最常用的是通过标记清除的算法来找到哪些对象不再继续使用;因此a=null其实仅仅只是做了一个释放引用的操作,让a原本对应的值失去引用,脱离执行环境,这个值在下一次垃圾收集器执行操作时被找到并释放,而在适当的时候解除引用,是为页面获得更好性能的一个重要方式。

     EG:在局部作用域中,当函数执行完毕,局部变量也就没有存在的必要了,因此垃圾收集器很容易做出判断并回收。但是在全局变量什么时候需要自动释放内存空间很难判断,因此在我们的开发中,需要尽量避免使用全局变量

        要详细的了解垃圾收集机制,就要看书了

  • 相关阅读:
    分布式编程下的CAS
    《码农翻身》读后感
    PHP Socket服务器搭建和测试
    在Java中使用Hibernate,使用不同数据库服务名
    linq的表关系解决办法
    SilverLight中使用WCF Ria出现的问题empty domain service class
    cmd中更换用户权限
    Flex中TabBar与ViewStack
    使用ApdComPort
    拖动控件
  • 原文地址:https://www.cnblogs.com/heixuanyu/p/11461018.html
Copyright © 2020-2023  润新知