物件和陣列初始化其實是新建立的物件和數組,這些初始化的表達式有時候叫做「物件直接量」和「陣列直接量」。然而和布林直接量不同,他們不是原始表達式,因為他們所包含的成員或元素都子表達式。
數組的初始化表達式語法非常簡單,我們以下開始
數組的初始化表達式是透過一對方括號和其內由逗號隔開的列表構成的,初始化結果是一個新建立的數組。數組的元素是逗號分隔表達式的值。
[] //一個空數組;[]內留空即表示該數組沒有任何元素
[1+2,3+4] //有兩個元素的數組,第一個3,第二個是7
陣列初始化表達式中的元素初始化表達式可以是陣列初始化表達式。也就是說表達式是可以嵌套的
var mat = [[1,2,3],[4,5,6],[7,8,9]];
數組直接量中列表之間的元素可以省略,空位就會填入undefined.例如下面:
var a=[1,,,,5]
其中4個元素是undefined.數組直接量的結尾處留下逗號,這時不會創建一個新的值為undefined的元素。
物件初始化表達式和陣列初始化表達式非常相似,只是方括號被花括號取代。並每個字表達式包含一個屬性名和非冒號作為前綴。
var p = {x: 2.1,y: -3} //一个拥有两个属性成员的对象 var q = {}; //空对象 q.x=2.1;q.y=-3; //q的属性成员和p的一样
物件直接量也可以嵌套,例如
var anh = {left:{x:2,y:3}, right:{x:4,y:5}}
javascript在計算物件初始化表達式的值時候,物件表達式都會各自計算一次,並且不必包含常數值:它們可以是任意javascript表達式。同樣,物件直接量中屬性的名稱可以是字串而不是識別符。 (在在那行只能使用保留字或一些非法識別碼作為屬性名的時候非常有用)
var side = 1; var square = {"left":{x:p.x,y:p.y}, 'right':{x:p.x+side,y:p.y+side}}
以上是什麼是javascript物件和陣列的初始化表達式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!