1. 程式人生 > >JS中對象與數組(大括號{}與中括號[])

JS中對象與數組(大括號{}與中括號[])

function cti turn 式表 use ebo lan 一個數 json數據結構

一、{ } 大括號,表示定義一個對象,大部分情況下要有成對的屬性和值,或是函數。
如:var LangShen = {"Name":"Langshen","AGE":"28"};
上面聲明了一個名為“LangShen”的對象,多個屬性或函數用,(逗號)隔開,因為是對象的屬性,
所以訪問時,應該用.(點)來層層訪問:LangShen.Name、LangShen.AGE,當然我們也可以用數組的方式來訪問,如:LangShen["Name"]、LangShen["AGE"],結果是一樣的。
該寫法,在JSON數據結構中經常用,除此之外,我們平時寫函數組的時候,也經常用到,如:

var LangShen = {
Name : function(){
return "LangShen";
},
Age : function(){
return "28";
}
}

調用方式差不多,因為是函數組,所以要加上(),如:alert( LangShen.Name() );
二、[ ]中括號,表示一個數組,也可以理解為一個數組對象。
如:var LangShen = [ "Name","LangShen","AGE","28" ];
很明顯,每個值或函數,都是獨立的,多個值之間只用,(逗號)隔開,因為是數組對象,所以它等於:
var LangShen = Array( "Name","LangShen","AGE","28" );

訪問時,也是和數組一樣,alert( LangShen[0] );
三、{ } 和[ ] 一起使用,我們前面說到,{ } 是一個對象,[ ] 是一個數組,我們可以組成一個對象數組,如:

var LangShen = { "Name":"Langshen",
"MyWife":[ "LuLu","26" ],
"MySon":[{"Name":"Son1"},{"Name":"Son2"},{"Name":"Son3"}]
}

從上面的結構來看,是一個對象裏面的第一項是個屬性,第二項是一個數組,第三個是包含有多個對象的數組。調用起來,也是一層一層訪問,對象的屬性用.(點)疊加,數組用 [下標] 來訪問。

如:alert( LangShen.MySon[1].Name ) ;


問題一:

var obj1 = { 100: "a", 2: "b", "7": "c", "e": "123"};
obj1.100和obj1.7都不正確,可以這樣 obj1[100]和obj1[7]、obj1[‘100‘]

問題二:

‘use strice‘; 
var ar = Array(5,6,7);
Object.prototype.toString.call(ar); //"[object Array]"
ar[3]=33;
ar //(4) [5, 6, 7,33]

ar[‘ss‘] =99;
ar //(4) [5, 6, 7, 33, ss: 99]

數組ar長度為4,但是ar[‘ss‘]正常,且可以對象方式表示ar.ss

總結:

對象的屬性名可以為數字,但是不能正常讀取,可以以數組下標形式讀取。

數組中可以存在類似於分健值對,讀取發數組方式或對象方式都可以,但是數組長度不正常

JS中對象與數組(大括號{}與中括號[])