1. 程式人生 > >淺談javaScript數據類型、變量、內存之間的關系,文末有圖解

淺談javaScript數據類型、變量、內存之間的關系,文末有圖解

賦值 特殊 資源釋放 都是 給他 存儲 情況 數據 引用類型

  • 一、變量是沒有類型的

在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數據類型、變量、內存之間的關系,文末有圖解