扫码关注公众号

JS数据类型之map
11-16
463观看
01

map()与 forEach()有什么相同处,什么不同处?

相同点:都可以对数组进行遍历,不可以使用break、continue,跳出遍历;不同点:map()遍历数组时,需要return每个子项,本身不改变原有数组,结果返回一个新数组;forEach()遍历数组时,改变原有的数组,遍历中不需要return。

来自:JavaScript语言-语法相关-操作符相关
02

Set、Map 是什么?

都是ES6中提供的新的数据结构。Set类似于数组,成员值都是唯一的,没有重复值。本身是构造函数,使用newSet()生成Set数据结构,实例本身有costructor、size属性。实例方法:add(value):添加成员值,delete(value):删除成员值,has(value):判断是否为成员值,clear():清除所有成员;3个遍历器生成的函数和1个遍历方法:keys():返回一个键名遍历器,values():返回一个键值遍历器,entries():返回一个键值对的遍历器,forEach():使用回调函数遍历每个成员。Map类似于对象,可以使用各种类型值(包括对象)作为键值。键值只有严格相等才会认为是同一个键值。本身具有size属性:返回成员总数。方法有:set(key,value):设置key对应的键值,key已有为更新,无添加;get(key):读取key对应的键值;has(key):判断是否存在某键值;delete(key):删除某个键;clear():清空所有成员;3个遍历器生成的函数和一个遍历方法:keys():返回键名的遍历器,values():返回键值的遍历器,entries():返回所有成员的遍历器,forEach():遍历Map所有成员。

来自:CSS、CSS3-ES6相关(后面会废弃)
03

Set、Map 与 WeakSet、WeakMap 有什么不同?

WeakSet结构与Set类似,也是不重复的值的集合。但是它与Set有两个区别:(1)WeakSet的成员只能是对象,不能是其他类型的值;(2)WeakSet不可遍历:因为,WeakSet中的对象都是弱引用,即垃圾回收机制不考虑WeakSet对该对象的引用,其他对象都不在引用该对象时,垃圾回收机制会自动回收该对象所占用的内存,不考虑该对象是否还存在与WeakSet中。WeakMap结构与Map结构基本类似,只接受对象作为键名(null除外),不接受其他类型的值作为键名,而且键名所指向的对象不计入垃圾回收机制。无size属性,无遍历方法,无法清空,键名不计入引用,只有4个方法:get()、set()、has()、delete()。

来自:CSS、CSS3-ES6相关(后面会废弃)
课程
专栏
js语言和框架-CSS、CSS3-ES6相关(后面会废弃)
2专栏
1课程
3 试题
热门专题