天天看点

【JavaScript】35_包装类与垃圾回收机制10、包装类11、垃圾回收

10、包装类

在JS中,除了直接创建原始值外,也可以创建原始值的对象

通过 new String() 可以创建String类型的对象

通过 new Number() 可以创建Number类型的对象

通过 new Boolean() 可以创建Boolean类型的对象

  • 但是千万不要这么做

包装类:

JS中一共有5个包装类

String --> 字符串包装为String对象

Number --> 数值包装为Number对象

Boolean --> 布尔值包装为Boolean对象

BigInt --> 大整数包装为BigInt对象

Symbol --> 符号包装为Symbol对象

  • 通过包装类可以将一个原始值包装为一个对象,

当我们对一个原始值调用方法或属性时,JS解释器会临时将原始值包装为对应的对象

然后调用这个对象的属性或方法

  • 由于原始值会被临时转换为对应的对象,这就意味着对象中的方法都可以直接通过原始值来调用
<script>
             // let str = new String("hello")
             // let num = new Number(11)
             // let bool = new Boolean(true)
             // let bool2 = new Boolean(true)
 ​
             // alert(bool == bool2)
 ​
             let str = "hello"
 ​
             str.name = "哈哈"
 ​
             let num = 11
             num = num.toString()
 ​
             // null.toString()
 ​
             console.log(num)
     </script>
           

11、垃圾回收

垃圾回收(Garbage collection)

  • 和生活一样,生活时间长了以后会产生生活垃圾 程序运行一段时间后也会产生垃圾
  • 在程序的世界中,什么是垃圾?
    • 如果一个对象没有任何的变量对其进行引用,那么这个对象就是一个垃圾
    • 垃圾对象的存在,会严重的影响程序的性能
    • 在JS中有自动的垃圾回收机制,这些垃圾对象会被解释器自动回收,我们无需手动处理
    • 对于垃圾回收来说,我们唯一能做的事情就是将不再使用的变量设置为null
<script>
         let obj = {name:'孙悟空'}
         let obj2 = obj
 ​
         obj = null
         obj2 = null
     </script>
           

继续阅读