JavaScript 的資料型別相較於其它的程式語言相對單純,同樣可以分為基本資料型別與物件資料型別,這兩者的差異在於前者是不變的,而後者是可變的,這種特性在物件導向類型的程式語言中經常看到,具體的說明來以看下的程式碼:
變數 x 的值被指定給 y ,而變數 o 的值則指定給變數 a ,接下來調整 a 與 y 的值,最後輸出 o 與 x 的值,結果如下:
<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.title:JavaScript
x:100
x:100
由於 x 的數值是基本型別,因此它無法被改變,所以輸出結果依然是原來的 100 ,而 o 本身為一參考物件,它的 title 屬性值透過 a 修改了,因此輸出的結果是新值「JavaScript」。
從這個範例的示範當中,我們可以更清楚的瞭解,所謂的可變值是指變數透過參考指向物件,因此其它參考的變數異動物件內容時便會受到影響。
沒有留言:
張貼留言