JavaScript -- 04 物件,條件判斷與迴圈
阿新 • • 發佈:2018-12-28
物件
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。
迴圈
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()迴圈。