1.Number
2.String
3.Null
4.undefined
5.symbol
6.boolean
以上都是簡單類型
7.object
var a=1
a.toString() //1 轉換成字符串
null undefined 沒有toString() api 報錯
null 報錯
undefined 報錯
object 的toString()
并不是想要的結果
利用 +' ' 轉換成字符串 # + #會嘗試把左右都轉換成字符串
image.png
window.String() 轉換字符串
image.png
布爾(boolean)
轉換成布爾
image.png
取反 任何數取反2次都可得到一個布爾
等同于上面的效果
5個特殊值
number 中 0 NaN false
string 中空字符串'' false
null null false
undefined undefined false
object 所有的數組函數都是true
轉換為number
'1' -> 1
- number('1')===1
- parseInt('1',10)===1
- parseFloot('1.23')===1.23
- '1'-0
- +'1' / + '-1'
存儲
stack (棧) 簡單類型
number null undefined symbol boolean
heap(堆) 復雜類型
object
GC 垃圾回收
如果一個對象沒有被引用 就是辣雞 將會被回收
深拷貝/淺拷貝
var a=1
var b=a
b=2
b變不影響a (深拷貝)
var a={ name:'a'}
var b=a
b.name='b'
a.name的值也變成b了 (淺拷貝)