天天看點

【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>
           

繼續閱讀