1、临时死区:用let和const声明的变量,放在临时死区',使用let声明的变量、const声明的常量的作用域不会被提升
2、在循环中使用var的情况:
let arr = [] arr.forEach(function(item){//item是函数,输出5个5 |
3、解构赋值: Rest运算符:"..."
(1)当迭代器使用:会按顺序遍历容器中的元素
function fun(x,z,y){ console.log(x,z,y) } let arr=[11,22,33] fun(...arr)// ' ...'运算符的作用是一个迭代器:依次遍历数组中的元素 |
(2) 替代函数的内置属性arguments
function fun(...args){ console.log(args) } let arr=[11,22,33] fun(arr) |
(3)通过解构赋值可以简化变量的赋值
let arr = [11,22,33] let [a.b.c] = arr console.log(a) |
(4) 通过"..."把特定的元素放在变量里
let [a,. . .arr] = [11,22,33]//将11赋给a,将22,33赋给arr,arr就是一个数组 console.log(a) console.log(arr) |
(5)通过解构来交换变量的值
let a = 10; let b = 20; [a,b] = [b,a] console.log(a,b) |
4、对象的解构
(1)将对象的属性解构出来,赋给变量
let obj = { id:1001, userName:'关羽', sex:'男' } let{id,userName,sex} =obj//变量名必须和对象的属性名相同 console.log('编号:',id) console.log('用户名:',userName) console.log('性别:',sex) |
(2) 解构多层对象
(3)在解构时可以给变量取别名
5、模板字符串: 使用反引``和${变量名}将字符串常量和变量写在一个串里,就不需要使用"+''进行字符串的拼接
6、Symbol类型
(1)ES5的数据类型:number、string、boolean、bigint、null、undefined、object
(2)ES6新增的Symbol:表示一个唯一的值
a、直接创建:let 变量名=Symbol
b、直接创建: 传字符串 let 变量名=Symbol (字符串)
7、Set集合:是一种数据结构,里面不能存放重复的值。可以使用于数组去重,字符串去重
(1)创建方式
a、使用new运算符:let 变量 = new Set()
b、通过数组创建:let 变量名 = new Set([1,2,3,4,5]),去除重复的元素
let s1 =new Set()//创建一个空集合 let arr = [11,22,33,44,] |
(2)常用方法
a、add():向集合中添加元素
b、delete():删除集合中的元素,删除成功返回true,删除失败返回false
c、has(val):判断val在集合中是否存在,若存在返回true,不存在返回false
d、clear():清空集合,没有返回中
e、values():获取的是集合中所有元素的值
f、keys():获取集合中的key
强调:Set集合也是key-value格式,它的key和 value是相同的
(3)属性:Size存放的是集合中元素的个数
(4)遍历方法:
a、for...of
a、for..of
for(let i of s1.keys){ console.log(i) } |
b、forEach()
s1.forEach(function(value,key){ console.log(value+'----'+key) }) |
(5)集合运算
a、并集:
let setA = new Set([4,5,6]) let setB = new Set([5,6,7]) //1.实现setA和setB的并集 let bj = new Set([...setA,...setB]) console.log(bj) |
b、交集:
//2.实现setA和setB 的交集:通过过滤器来实现 let arr = [...setA] //:解构集合setA,将其转换成数组 //对arr进行过滤:使用filter函数 let temp = arr.filter(function(item){//依次从arr中取出元素传递给item,在函数体内设置筛选条件,将满足条件的元素返回temp if(setB.has(item)){ return item } }) console.log(temp) |
c、差集
//2.实现setA和setB 的交集:通过过滤器来实现 let arr = [...setA] //:解构集合setA,将其转换成数组 //对arr进行过滤:使用filter函数 let temp = arr.filter(function(item){//依次从arr中取出元素传递给item,在函数体内设置筛选条件,将满足条件的元素返回temp if(setB.has(item) == false){ return item } }) console.log(temp) |