let
在代码块内有效
不能重复声明
变量声明不提升
Const
声明了必须赋值,否则会报错。
暂时性死区,在声明变量之前使用它会报错。
解构赋值
针对数组或者对象进行的模式匹配,然后对其中的变量进行赋值
左边部分是解构的目标,右边部分是解构的源
Symbol
属于数据类型,独一无二的值,用来定义对象的唯一属性名
let aaa= Symbol('aa');
let bbb=Symbol('aa');
aaa===bbb // false
typeof(aaa) //aa
let ccc={}
ccc[sy]=ddd
ccc[sy] //ddd
ccc.sy // undefined
Map对象
map中的key
对map进行遍历
var map = new map();
for(var [key,value] of map){
console.log(key +'=' + value)
}
for(var key of map.keys()){
console.log(key)
}
for(var key of map.values()){
console.log(value)
}
map.foreach(funxtion(value,key){
console.log(key +"=" + value)
})
map与数组的转换
var aArray =[ ["aaa","111"],["bbb","222"]]
var aMap = new Map(aArray)
var outArray = Array.from(aMap)
console.log(outArray) // [ ["aaa","111"],["bbb","222"]]
console.log(aMap) // Map=>{ 'aaa' => '111' , 'bbb' => '222'}
map的克隆、合并
var ddd= new Map([...aaa, ...bbb]);
set对象
数组去重
var set = new Set([111, 222, 333, 444, 444]);
[...set]; // [111, 222, 333, 444]
交集并集差集