# 7.ES6新增数据类型

# 1.Symbol

原始数据类型 Symbol,它表示独一无二的值

const name = Symbol('name')
const name2 = Symbol('name2')
console.log(name === name2)	//false

最大用处:用于定义对象的私有变量

let s1 = Symbol('s1')
console.log(s1)
let obj = {}
obj[s1] = '张三'
console.log(obj)
console.log(obj[s1])
console.log(obj.s1)	// undefined

# 2.Set

ES6提供了新的数据结构 Set,它类似于数组,但是成员的值都是唯一的,没有重复的值

Set 本身是一个构造函数,用来生成Set数据结构

const s = new Set()

Set函数可以接受一个数组作为参数,用来初始化

const set = new Set([1, 2, 3, 4, 4])
set.forEach(item => {
    console.log(item)
})
// 1 2 3 4
console.log(set.size)	// 4


let arr = [1, 3, 4, 6, 10, 10, 3]
const set2 = new Set(arr)
arr = [...set2]	// 去重

# 实例方法

  • add(value):添加某个值,返回Set结构本身
  • delete(value):删除某个值,返回布尔值,表示删除是否成功
  • has(value):返回一个布尔值,表示该值是否为Set的成员
  • clear():清除所有成员
const s = new Set()
s.add(1).add(2).add(3)
s.delete(2)
s.has(1)
s.clear()

# 遍历

Set结构的实例与数组一样,也有forEach方法

const set = new Set([1, 2, 3])
set.forEach(item => {
	console.log(item)
})

# 3.Map

Map类型是键值对得有序列表,键和值是任意类型

let map = new Map()
console.log(map)
map.set('name','张三')
console.log(map)

console.log(map.get('name'))

console.log(map.has('name'))	// true

map.delete('name')

map.clear()
map.set(['a',[1,2,3]], 'hello')
console.log(map)

map.set(['a', 1], ['c', 2])
console.log(map)
// a => 1 , c => 2
更新时间: 7/22/2021, 5:03:43 PM