1. 程式人生 > >JavaScript -- 04 物件,條件判斷與迴圈

JavaScript -- 04 物件,條件判斷與迴圈

物件

JavaScript的物件是一種無序的集合資料型別,它有若干鍵值對組成。JavaScript的物件用於描述現實世界的某個物件。 例如,描述‘小明’:
var xiaoming = {
	name: 'xiaoming',
	birth: 1990,
	school:'No.1 Middle School',
	height: 1.70,
	weight: 65,
	score: null
};
JavaScript是用一個{...}表示一個物件,鍵值對以xxx: xxx形式申明,用,隔開。最後一個鍵值對不需要在末尾加, 。如果加了,有的瀏覽器就會報錯。訪問屬性是通過. 操作符完成的,如果屬性名包含特殊字元,就必須用 ‘ ’ 括起來
var xiaohong = {
    name: '小紅',
    'middle-school': 'No.1 Middle School'
};

xiaohong['middle-school']; // 訪問這個屬性也無法使用.操作符,必須用['xxx']來訪問,'No.1 Middle School'
xiaohong['name']; // '小紅'
xiaohong.name; // '小紅'

實際上JavaScript物件的所有屬性都是字串,不過屬性對應的值可以是任意資料型別。

如果訪問一個不存在的屬性會返回什麼呢?JavaScript規定,訪問不存在的屬性不報錯,而是返回undefined

如果要檢測xiaoming是否含有某一屬性,可以用in操作符:(但是這個屬性不一定是xiaoming的,它可能是xiaoming繼承得來的)
'name' in xiaoming; // true
'toString' in xiaoming;	/*true 因為tostring定義在Object物件中,
而所有物件最終都會在原型鏈上指向object,所以xiaoming也擁有toString屬性*/

/*可以用hasOwnProperty()方法來判斷一個屬性是否是xiaoming自身擁有的*/
xiaoming.hasOwnProperty('name');	//true
xiaoming.hasOwenProperty('toString'); //false

條件判斷

JavaScript可以使用if() {...} else {...}來進行條件判斷。其中else語句是可選的,如果語句塊只包含一條語句,可以省略{};
var age = 20;
if(age >= 18) {
	alert('adult');
} else {
	alert('teenager');
}

通常把else if連寫在一起 ,來增加可讀性。另外,JavaScript把null, undefined, 0, NaN和空字串' '視為false,其他值一概視為true,因此上述程式碼條件判斷的結果是true。

迴圈

JavaScript有兩種迴圈,一種是for迴圈,通過初始條件,結束條件和遞增條件來迴圈執行語句塊:
var x = 0; 
var i;
for(i=1; i<=10000; i++)	{
	x = x + i;
}
x;	//50005000

for...in迴圈,它可以把一個物件的所有屬性依次迴圈起來
var o = {
	name: 'Jack',
	age: 20,
	city: 'Beijing'
};
for(var key in o) {
	alert(key);	//'name', 'age', 'city'
}

whiie迴圈只有一個判斷條件,條件滿足就不斷迴圈,條件不滿足時就退出迴圈。
最後一種是do{...} while()迴圈。