所有資料都是物件!
資料型別分成:基本資料型別、複雜資料型別
基本資料型別 ( primitive data type ):為語言的基本構成單元,Boolean、int、Number、String 等
複雜資料型別 ( complex data type ):通常由基本資料型別構成,Array、Function 等
變數命名
- 盡量使用有含意的英文單字
- 使用小駝峰命名 ( ex: maxWidth )
- 命名符合 最短長度、最富意義 原則
- 避免出現數字編號 ( ex: id_1、id_2 )
變數的本質
每個物件在建立時,會向記憶體請求一塊空間來儲存資料,而我們宣告的變數會持有引用
( Reference ),引用則是指向該物件所在的記憶體位置
( Reference ),引用則是指向該物件所在的記憶體位置
實質型別和引用型別
實質型別是直接存取值;引用型別則是儲存引用
簡單來說 如果存取的資料是 「基本資料型別」那麼它就是「實質型別」,反之則是 「引用型別」
引用型別變數儲存的是引用 ( Reference ),因此只要修改資料,所有存取相同引用、指向同一個資料的變數,都會跟著異動
實質型別變數儲存的是實際的值 ( Value ) ,因此變數彼此之間互不干擾
引用型別變數儲存的是引用 ( Reference ),因此只要修改資料,所有存取相同引用、指向同一個資料的變數,都會跟著異動
實質型別變數儲存的是實際的值 ( Value ) ,因此變數彼此之間互不干擾
不變物件 ( immutable object )
前面提到了所有資料都是物件,所以即使是實質型別變數,儲存的仍然是引用,但是是特殊物件,稱之為「不變物件 ( immutable object ) 」,導致實質型別變數的使用方式不太一樣
不變物件,也就是一但被建立起來,就不能再被更改
所以當發現指向不變物件的引用想要更改值的話,會另外建立一個新的不變物件來接收新的值,並更新引用
而舊的不變物件如果不再被使用,則會被自動回收
這種不變物件可以減少記憶體的消耗,因為變數存取的是引用而非值,因此當有很多個實質型別變數的值都是「100」,那實際上只會有一個值為「100」的不變物件被建立
const 常數
常數,也就是恆定不變的數值,只能在宣告的時候賦值,而且一經賦值就不能再更改,只要確認一個變數的值不該被改變,就應該將它設成常數
對於實質型別變數而言,常數持有的就是值
對於引用型別變數而言,常數值有的是引用,因此只能保證該引用不會更動,並不保障引用物件本身的值不會異動
沒有留言:
張貼留言