淺談javaScript數據類型、變量、內存之間的關系,文末有圖解
阿新 • • 發佈:2019-05-01
賦值 特殊 資源釋放 都是 給他 存儲 情況 數據 引用類型
- 一、變量是沒有類型的
在JavaScript中,定義變量的方法是“var 變量名=變量值”,無論這個變量要給他賦值為一個數字、字符串還是數組,他的類型都不需要聲明。也就是說如果我只聲明了一個變量“var a”,而沒有給他賦值,那麽我可以給他賦任何值,在語法上都是沒有問題的。
- 二、變量值是有類型的
盡管變量是沒有類型的,使用typeof方法仍然能夠獲取到一個類型:
var a; console.log(typeof(a));//值為undefined var a=1; console.log(typeof(a));//值為number var a=null; console.log(typeof(a));//值為object var a={name:‘Tom‘}; console.log(typeof(a));//值為object
不過typeof方法獲取到的並不是變量的類型,而是變量被賦予的值的類型。有兩種比較特殊的情況:賦值為null的變量會返回object類型,只聲明不賦值的變量會返回undefined類型。賦值為null是為了表明該變量將要賦值為對象,或者要將變量原先所指向的資源釋放。
變量值可以分為基本數據類型和對象類型兩大類:
基本類型有:String、number、Boolean、null、undefined五種
對象類型有:object、function、array、date、基本包裝類、內置對象
三、內存
js語言中,變量值如果是基本類型,它也存儲在棧中;如果變量值是引用類型,他存儲在堆空間中,棧空間存儲的是相應的地址。
淺談javaScript數據類型、變量、內存之間的關系,文末有圖解