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