JavaScript 的基本與物件資料型別差異

JavaScript 的資料型別相較於其它的程式語言相對單純,同樣可以分為基本資料型別與物件資料型別,這兩者的差異在於前者是不變的,而後者是可變的,這種特性在物件導向類型的程式語言中經常看到,具體的說明來以看下的程式碼:

<script>
    var x = 100;
    var o = { title: 'HTML5' };
    var y = x;
    var a = o;

    a.title = 'JavaScript';
    y = 200;

    document.write('o.title' + o.title);
    document.write('<br/>');
    document.write('x' + x);
</script>

變數 x 的值被指定給 y ,而變數 o 的值則指定給變數 a ,接下來調整 a 與 y 的值,最後輸出 o 與 x 的值,結果如下:

o.titleJavaScript
x
100

由於 x 的數值是基本型別,因此它無法被改變,所以輸出結果依然是原來的 100 ,而 o 本身為一參考物件,它的 title 屬性值透過 a 修改了,因此輸出的結果是新值「JavaScript」。

從這個範例的示範當中,我們可以更清楚的瞭解,所謂的可變值是指變數透過參考指向物件,因此其它參考的變數異動物件內容時便會受到影響。


沒有留言: