js中默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构,即一组键值对
但是在js对象中键必须是字符串,但实际上Number或者其他的数据结构作为键也是可以的。
为了解决这个问题,最新的ES6规范引入了最新的数据类型Map。
Map
mapvar m = new Map();
var m = new Map([ [ 'name' , 'wu' ] , ['age','12'] ]);
m.set('name','wuyanbin'); //"name" => "wuyanbin"
m.get('name') ;
m.delete('name');
Set
setset和map类似,是一组key的集合,但不存储value,key不能重复,所以没有重复值。
var s = new Set([1,2,3]);
iterable
遍历array 可以采用下标循环,遍历Map和set 就无法使用下标的方式。为了集合类型,ES6标准引入了iterable类型,array,map,set都属于这个类型。
iterable遍历方式:
1.for ... of
for(var key of iterable){ //key 是数组中的值
}
2.iterable内置的forEach()方法
iterable.forEach(function(element, index, iterable){
});
array,set,map的参数名字都不固定,
但是位置固定,
这样理解对吗?
array.forEach(function (元素, 索引, 本身)
set.forEach(function (元素, 元素,本身)
map.forEach(function (值, 键, 本身)
你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。回答完毕。--知乎:常溪玲
其他循环方式
1.for ... in //IE中会多循环一次
for(var key in arr){} //key 是数组下标
2.for(){}
其中包含了 || 的另一个用法,特地查了一下,用法如下供参考:
1、只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。
2、只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。
3、只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;
4、只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值
网友评论