js中默認(rèn)對(duì)象表示方式{}可以視為其他語(yǔ)言中的Map或Dictionary的數(shù)據(jù)結(jié)構(gòu)欢嘿,即一組鍵值對(duì)
但是在js對(duì)象中鍵必須是字符串膛檀,但實(shí)際上Number或者其他的數(shù)據(jù)結(jié)構(gòu)作為鍵也是可以的俐筋。
為了解決這個(gè)問(wèn)題躲雅,最新的ES6規(guī)范引入了最新的數(shù)據(jù)類型Map籍凝。
Map
var m = new Map();
var m = new Map([ [ 'name' , 'wu' ] , ['age','12'] ]);
m.set('name','wuyanbin'); ? //"name" => "wuyanbin"
m.get('name') ;
m.delete('name');
Set
set和map類似路媚,是一組key的集合黄琼,但不存儲(chǔ)value,key不能重復(fù),所以沒(méi)有重復(fù)值脏款。
var s = new Set([1,2,3]);
iterable
遍歷array 可以采用下標(biāo)循環(huán)围苫,遍歷Map和set 就無(wú)法使用下標(biāo)的方式。為了集合類型撤师,ES6標(biāo)準(zhǔn)引入了iterable類型剂府,array,map,set都屬于這個(gè)類型剃盾。
iterable遍歷方式:
1.for ...? of
for(var key of iterable){ ? ? //key 是數(shù)組中的值
}
2.iterable內(nèi)置的forEach()方法
iterable.forEach(function(element, index, iterable){
});
array,set,map的參數(shù)名字都不固定,
但是位置固定,
這樣理解對(duì)嗎?
array.forEach(function (元素, 索引, 本身)
set.forEach(function (元素, 元素腺占,本身)
map.forEach(function (值, 鍵, 本身)
你到一個(gè)商店買東西,剛好你要的東西沒(méi)有貨痒谴,于是你在店員那里留下了你的電話衰伯,過(guò)了幾天店里有貨了,店員就打了你的電話积蔚,然后你接到電話后就到店里去取了貨意鲸。在這個(gè)例子里,你的電話號(hào)碼就叫回調(diào)函數(shù)尽爆,你把電話留給店員就叫登記回調(diào)函數(shù)怎顾,店里后來(lái)有貨了叫做觸發(fā)了回調(diào)關(guān)聯(lián)的事件,店員給你打電話叫做調(diào)用回調(diào)函數(shù)教翩,你到店里去取貨叫做響應(yīng)回調(diào)事件杆勇√翱牵回答完畢饱亿。--知乎:常溪玲
其他循環(huán)方式
1.for ... in ? ? ?//IE中會(huì)多循環(huán)一次
for(var key in arr){} ? ? ? //key 是數(shù)組下標(biāo) ?
2.for(){}
其中包含了 || 的另一個(gè)用法,特地查了一下闰靴,用法如下供參考:
1彪笼、只要“||”前面為false,不管“||”后面是true還是false,都返回“||”后面的值蚂且。
2配猫、只要“||”前面為true,不管“||”后面是true還是false,都返回“||”前面的值杏死。
3泵肄、只要“&&”前面是false,無(wú)論“&&”后面是true還是false淑翼,結(jié)果都將返“&&”前面的值;
4腐巢、只要“&&”前面是true,無(wú)論“&&”后面是true還是false玄括,結(jié)果都將返“&&”后面的值