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>