JavaScript判断、循环、Map、Set
本文是笔者在看廖雪峰老师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
、sameElement
和set本身