本文实例讲述了ES6教程之for循环和Map,Set用法。分享给大家供大家参考,具体如下:
现在大家先想一想,如果要你遍历一个数组的元素,你会选择如何去做呢?一般都会想起for循环:
可惜我得告诉你,这个方法是二十年的人才应该使用的方法,在ES5中已经提出了更为简便的forEach方法,代码如下:
虽然forEach方法简短一点,但是它也有它的缺点,就是不能够break来中途退出循环,也不能通过return来退出循环。
那么不是还有for-in方法吗:
可是for-in方法实际上是为存储key的键值对型对象准备的,而不是为数组准备的,它的下标为字符串“1”,“2”……相信大家都知道“1”+“2”会怎么样吧?
for-of循环
ES6为了不影响以前的代码,为了满足很多人已经养成的习惯,只能推出一种新的循环语法for-of:
对比for-in和for-of:
下面介绍一下Map和Set对象Map,Set
JavaScript的默认对象表示方式是{},但是JavaScript的对象有个小问题,就是键必须是字符串。但实际上Number或者其他数据类型作为键也是非常合理的。
为了解决这个问题,最新的ES6规范引入了新的数据类型Map。
Map是具有极快查找速度的键值对结构。
我们看看Map的使用示例:
上面的has方法比indexOf速度快。
Set和Map类似,也是存在key的列表,只不过Set中的元素不能够重复。
可以看到,再次添加的重复数据会被过滤掉。
那么这两种对象的运用场景有哪些呢?
Map可以用来存储键值对,比如姓名和年龄,而Set可以用来存储不能重复的目标,比如学号列表。
for-of用于对象
好啦,介绍完了两种类型的新对象,让我们看看for-of如何作用于Set对象上的:
遍历Map对象则不同,因为Map是以键值对存储的,所以我们需要分开两个单独的变量来遍历:
但是需要注意一点。for-of并不是用来遍历普通的对象的属性的,如果我们一定要这么做,可以使用for-in或者如下方法:
希望本文所述对大家ECMAScript程序设计有所帮助。
原文链接:https://www.f2er.com/js/40096.html