最近在刷廖雪峯的JS教程,把裏面的本身不太清楚的東西在刷一遍。
教程網址:www.liaoxuefeng.com/wiki/001434…javascript
String
、Number
、Boolean
、Null
、Undefined
Object
Symbol
(感謝TimeTraveler指出)middle-school
,就須要用''括起來。訪問這個屬性也沒法使用.操做符,必須用['xxx']
來訪問。(能夠利用這個方式獲取部分自動生成屬性值)in
判斷一個對象的屬性是否存在,當是須要注意,它多是對象繼承獲得的,例如:var xiaoming = {
name: '小明',
birth: 1990,
school: 'No.1 Middle School',
height: 1.70,
weight: 65,
score: null
};
'name' in xiaoming; // true
'grade' in xiaoming; // false
'toString' in xiaoming; // true(由object繼承而來)複製代碼
hasOwnProperty()
方法來判斷一個屬性是否爲對象自身擁有的屬性,例如:var xiaoming = {
name: '小明'
};
xiaoming.hasOwnProperty('name'); // true
xiaoming.hasOwnProperty('toString'); // false複製代碼
if...else...
語句的執行特色是二選一,在多個if...else...
語句中,若是某個條件成立,則後續就再也不繼續判斷了。null
、undefined
、0
、NaN
和空字符串''
視爲false,其餘值一律視爲true
。for ... in
循環,它能夠把一個對象的全部屬性依次循環出來,須要注意的是,循環會把繼承的屬性加上,若是要過濾掉對象繼承的屬性,用hasOwnProperty()
來實現:var o = {
name: 'Jack',
age: 20,
city: 'Beijing'
};
for (var key in o) {
if (o.hasOwnProperty(key)) {
alert(key); // 'name', 'age', 'city'
}
}複製代碼
iterable
類型,Array
、Map
和Set
都屬於iterable
類型。iterable
類型的集合能夠經過新的for ... of
循環來遍歷。(只會循環集合自己)iterable
內置的forEach
方法,它接收一個函數,每次迭代就自動回調該函數。Array下輸出的爲(element, index, array);
Map下輸出的爲(value, key, map);
Set下輸出的爲(element, sameElement, set); // Set沒有索引,所以回調函數的前兩個參數都是元素自己複製代碼