JS数据类型之Set

JavaScript020

JS数据类型之Set,第1张

Set 对象允许你存储任何类型的 唯一值 ,无论是 基本数据类型 还是 对象引用 。

使用 new Set() 进行声明和创建一个对象。

size :返回Set对象中值的个数

Set对象与数组之间的相互转换

三点语法 或 Array.from() 把Set对象转换为数组

注意:

1.数组转换成map键值对

var m=new Map()

var arr=['a','b','v','r']

for(var i=0i<arr.lengthi++){

m.set(arr[i],i)//转变成新的map键值对,也可以像原有键值对添加新得键值对,具有唯一性,当重复赋值,则会使用最后一个值

}

console.log(m)        //{"a" =>0,"b" =>1,"v" =>2,"r" =>3}

 console.log(m.get('a'))       //查看键值对a的值     0

console.log(m.has('c'))      //查看是否存在这个键值对,返回布尔类型的值     false

console.log(m.delete('r'))            //删除r键值对   返回布尔类型       true

console.log(m)              //{"a" =>0,"b" =>1,"v" =>2}

对象中有get和set方法,在读取和设定值的时候触发。vue中的数据绑定就是通过这个来实现的。

作用:

(1). 在对象内属性嵌套层级过多时,可以直接在对象下读取到对应属性,简化调用;

(2). 在get时可以任意设置属性名,可以不暴露组件内部属性名。

作用:

(1). 在对象内属性嵌套层级过多时,可以直接在对象下设置到对应属性,简化层级;

(2). set方法内的逻辑在赋值时会自动执行,可以监听属性值的改变

作用:

set方法可以监听对应属性值的改变,vue的数据动态绑定就是通过这个方法实现的,监听到vue实例中的data属性发生改变时,在set方法中触发模版重新渲染逻辑。

作用:

和方法1直接在对象中设置效果和原理相似