美文网首页
普通类型和对象的区别

普通类型和对象的区别

作者: weirdy丶 | 来源:发表于2019-04-24 20:08 被阅读0次

    JavaScript里的数据类型分为7种,分别为:number、string、boolean、null、undefined、symbol、object。

    其中简单类型有:number、string、boolean、null、undefined、symbol;复杂类型有:object。

    内存:

    当我们打开浏览器时,会占用一些内存,浏览器会把内存分布给网页,然后会分配给html、css、js、网络还有插件等等。

    JS引擎得到的内存又会分布给代码区和数据区。在数据区里又分Stack栈内存、Heap堆内存。简单类型的数据会被存在Stcak栈内存里,复杂类型的数据是把 Heap 地址存在 Stack 里。

    关于内存的相关题目:

    ①请问a等于多少?

    答:a = 1

    ②请问a.name等于多少?

    答:a.name = 'a'

    ③请问a.name等于多少?

    答:a.name = 'b'

    ④请问a等于多少?

    答:a= { name: 'a' }


    GC垃圾回收机制

    这个页面用完了的内存,还给浏览器,浏览器再给别的页面。

    如果一个对象没有被引用,它就是垃圾,将被回收。

    例:

    请问fn是不是垃圾?

    答:不是。

    假如把页面关了,那fn是不是垃圾呢?

    答:是,因为把页面关了,document就不存在了,也就是说这个内存中没有document对象。

    但是在IE里有bug,它认为上图中10、20、30这三个东西不是垃圾,会把这些一直留着,只要不把整个网页关掉,就会一直存在着。

    如何解决呢?

    我们需要把所有的事件监听置为null。

    内存泄漏:由于浏览器的一些bug,使得该被标记为垃圾的东西,没有被标记为垃圾,然后内存就会被永久的占用着,除非你把整个浏览器给关了。

    相关文章

      网友评论

          本文标题:普通类型和对象的区别

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