js中默認對象表示方式{}可以視為其他語言中的Map或Dictionary的數(shù)據(jù)結(jié)構(gòu),即一組鍵值對
但是在js對象中鍵必須是字符串,但實際上Number或者其他的數(shù)據(jù)結(jié)構(gòu)作為鍵也是可以的。
為了解決這個問題,最新的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的集合,但不存儲value,key不能重復(fù),所以沒有重復(fù)值。
var s = new Set([1,2,3]);
iterable
遍歷array 可以采用下標(biāo)循環(huán),遍歷Map和set 就無法使用下標(biāo)的方式。為了集合類型,ES6標(biāo)準(zhǔn)引入了iterable類型,array,map,set都屬于這個類型。
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ù)名字都不固定,
但是位置固定,
這樣理解對嗎?
array.forEach(function (元素, 索引, 本身)
set.forEach(function (元素, 元素,本身)
map.forEach(function (值, 鍵, 本身)
你到一個商店買東西,剛好你要的東西沒有貨,于是你在店員那里留下了你的電話,過了幾天店里有貨了,店員就打了你的電話,然后你接到電話后就到店里去取了貨。在這個例子里,你的電話號碼就叫回調(diào)函數(shù),你把電話留給店員就叫登記回調(diào)函數(shù),店里后來有貨了叫做觸發(fā)了回調(diào)關(guān)聯(lián)的事件,店員給你打電話叫做調(diào)用回調(diào)函數(shù),你到店里去取貨叫做響應(yīng)回調(diào)事件?;卮鹜戤?。--知乎:常溪玲
其他循環(huán)方式
1.for ... in ? ? ?//IE中會多循環(huán)一次
for(var key in arr){} ? ? ? //key 是數(shù)組下標(biāo) ?
2.for(){}
其中包含了 || 的另一個用法,特地查了一下,用法如下供參考:
1、只要“||”前面為false,不管“||”后面是true還是false,都返回“||”后面的值。
2、只要“||”前面為true,不管“||”后面是true還是false,都返回“||”前面的值。
3、只要“&&”前面是false,無論“&&”后面是true還是false,結(jié)果都將返“&&”前面的值;
4、只要“&&”前面是true,無論“&&”后面是true還是false,結(jié)果都將返“&&”后面的值