本文是笔者在看廖雪峰老师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本身