本文是筆者在看廖雪峰老師JavaScript教程時的個人總結
一些判斷條件
JavaScript把
null
、
undefined
、
0
、
NaN
和空字符串
''
視為
false
,其他值一概視為
true
,因此上述代碼條件判斷的結果是
true
循環
1.for(同C)
2.while (同C)
3.do while(同C)
變體 for...in
遍歷對象 只遍歷屬性,沒有屬性對應的值
遍歷數組 只遍歷索引 遍歷索引的結果是字符串不是numble 不是1 是'1'
so 數組也是對象,索引值是其屬性
map
Map
是一組鍵值對的結構,具有極快的查找速度。
初始化
Map
需要一個二維數組,或者直接初始化一個空
Map
map方法 1.get(鍵) 得到值
2.set(鍵:值) 添加一個元素
3.has(鍵) 查找是否含有這個鍵 返回true false
4.delete(鍵) 刪除這個鍵
一個key只能對應一個value,所以,多次對一個key放入value,后面的值會把前面的值沖掉
set
set是一組key的集合,但不包含value。而且key不能重復
重復元素自動被過濾掉
通過add()添加key
通過delete()刪除key
iterable
這是一個類型
首先 遍歷數組可以采用下標循環,但是遍歷map和set就無法使用下標。so 為了統一iterable應景而生,array,map,set都屬於iterable類型
屬於iterable類型的集合可以使用for....of...循環來遍歷
遍歷 array set 值對值
遍歷 map x[0]:鍵 x[1]:值
for...in 和 for...of區別
for...in遍歷的是對象的屬性名稱
for...of遍歷的是對象的值
for...of只遍歷集合的本身,后期加入的屬性不進行遍歷
放大招 : iterable內置一個forEach方法,它接收一個函數,每次迭代就自動回調該函數
例子:
var a = ['A', 'B', 'C'];
a.forEach(function (element, index, array) {
// element: 指向當前元素的值
// index: 指向當前索引
// array: 指向Array對象本身
alert(element);
});
function (element, index, array) 這是一個匿名函數 三個參數名字自己定義 不過forEach傳入參數的順序是確定的,且分別代表的也是確定的。每向下迭代一次就執行該函數一次
Map
的回調函數參數依次為
value
、
key
和
map
本身
set的回調函數參數依次為
element
、sameE
lement
和set本身