標籤:不能 regex confirm 語句 對象 comment 雙引號 null 原型
{...}表示一個對象,索引值對以xxx: xxx形式申明,用,隔開。注意,最後一個索引值對不需要在末尾加,,如果加了,有的瀏覽器(如低版本的IE)將報錯。
- 屬性名稱通過.(點號)來訪問,但當屬性名稱不是標準變數名時,需要用‘’(單引號)或“”(雙引號)引起來,例如:
var xiaohong = { name: ‘小紅‘, ‘middle-school‘: ‘No.1 Middle School‘};
而且訪問非標準變數名的屬性時也不能用.(點號),而要用[],例如:xiaohong[‘middle-school‘]; // ‘No.1 Middle School‘ xiaohong[‘name‘]; // ‘小紅‘ xiaohong.name; // ‘小紅‘ 屬性名稱盡量使用標準的變數名,這樣就可以直接通過object.prop的形式訪問一個屬性了。
- JavaScript規定,訪問不存在的屬性不報錯,而是返回
undefined,刪除一個屬性:delect object.prop
如果我們要檢測xiaoming是否擁有某一屬性,可以用in操作符,例如:‘name‘ in xiaoming; 不過要小心,如果in判斷一個屬性存在,這個屬性不一定是xiaoming的,它可能是xiaoming繼承得到的:
‘toString‘ in xiaoming; // true
因為toString定義在object對象中,而所有對象最終都會在原型鏈上指向object,所以xiaoming也擁有toString屬性。
要判斷一個屬性是否是xiaoming自身擁有的,而不是繼承得到的,可以用hasOwnProperty()方法:
var xiaoming = { name: ‘小明‘};xiaoming.hasOwnProperty(‘name‘); // truexiaoming.hasOwnProperty(‘toString‘); // false
javascript把0、null、undefined、NaN、字串‘‘視為false,其他都視為true。
- alert()
- confirm()
- prompt()
for迴圈的3個條件都是可以省略的,如果沒有退出迴圈的判斷條件,就必須使用break語句退出迴圈,否則就是死迴圈:
var x = 0;for (;;) { // 將無限迴圈下去 if (x > 100) { break; // 通過if判斷來退出迴圈 } x ++;}
for迴圈的一個變體是for ... in迴圈,它可以把一個對象的所有屬性依次迴圈出來:
var o = { name: ‘Jack‘, age: 20, city: ‘Beijing‘};for (var key in o) { alert(key); // ‘name‘, ‘age‘, ‘city‘}
由於Array也是對象,而它的每個元素的索引被視為對象的屬性,因此,for ... in迴圈可以直接迴圈出Array的索引:
var a = [‘A‘, ‘B‘, ‘C‘];for (var i in a) { alert(i); // ‘0‘, ‘1‘, ‘2‘ alert(a[i]); // ‘A‘, ‘B‘, ‘C‘}
請注意,for ... in對Array的迴圈得到的是String而不是Number。var arr = ["xiaoming","xiaohong","xiaoli"]; for (name in arr) {
alert(`hello,${arr[name]}`);
}
javascript學習筆記(一)