js中的表達式

js中的表達式

數組初始化表達式

數組的初始化表達式是通過一對方括號和期內由逗號隔開的列表構成。初始化的結果是穿件一個新數組。數組的元素是逗號分隔的表達式的值:

[] //一個空數組,[]內是空表示該數組沒有元素

[1+2,3+4] //有兩個元素,一個是3,一個是7

數組初始化表達式中的元素初始化表達式也可以是數組初始化表達式,即這些表達式可以嵌套。

var matrix = [[1,2,3],[4,5,6],[7,8,9,10]];

數組初始化表達式進行求值的時候,數組初始化表達式中的元素表達式也都會各自計算一次。因此,數組初始化表達式每次計算的值可能是不同的。

數組直接量中的列表逗號之間的元素可以省略,這是省略的空位填充值位undefined。

var sparseArray = [1,,,5]; //由兩個undefined

數組直接量的元素列表的元素結尾可以留下單個逗號,職務時並不會創建一個新的值為undefined的元素。

對象初始化表達式

對象始化表達式和數組初始化表達式非常類似,只是方括號被花括號代替,並且每個子表達式都包含一個屬性名和一個冒號作為前綴。

var p = {x:2,y:3}; //一個擁有兩個屬性成員的對象

var q = {} //一個空對象

q.x = 2; q.y = 3 ; //q的屬性成員和y的一樣

對象直接量也可以嵌套:

var rectangle = {upperleft : {x:2,y:2},

lowezright : {x : 3,y :3}};

js求對象初始化表達式時,對象表達式也都會各自計算一次,並且它們不必包含常數值;它們可以是任意的js表達式。同樣對象直接量的屬性名可以是字符串而不是標識符。

函數定義表達式

函數定義表達式定義一個js函數。表達式德職是這個新定義的函數。

一個典型的函數定義表達式包含關鍵字function,跟隨其後的是一對圓括號,括號內是一個以逗號分隔的列表,列表含有0個或多個標識符(參數名),然後在跟隨一個花括號包裹的js代碼段(函數體)。如:

var square = function(x){return x*x}; // 這個函數返回傳入參數的平方

函數定義表達式同樣可以包含函數名。

var square = function test (x){return x*x};

屬性訪問表達式

屬性訪問表達式運算得到一個對象屬性或一個數組元素的值。js為屬性訪問定義了兩種方法:

expression . identifier

expression .[ expression]

第一種寫法是一個表達式後跟隨一個句點和標識符。表達式指定對象,標識符則制定需要訪問的屬性名。

第二種寫法使用方括號,方括號內是另一個表達式(這種方法適用於對象和數組)。第二個表達式指定要訪問的屬性的名稱或者要訪問數組元素呢的索引。如:

var 0 = {x :1,y : {z : 3}}; //一個示例對象

var a = [o,4,[5,7]]; //一個包含這個對象的示例數組

o.x //表達式0的x屬性 1

o.y.z //表達式 o.y的z屬性 3

o["x"] //對象o的x屬性 1


分享到:


相關文章: