ES6的特性

1、临时死区:用let和const声明的变量,放在临时死区',使用let声明的变量、const声明的常量的作用域不会被提升

2、在循环中使用var的情况:

let arr = []
        for(var i = 0; i < 5;i++){//var定义的i是全局的,若将var改为1et,则输出0 1 2 3 4)
            arr.push(function(){//arr是一个函数数组:数组的每个单元都是函数
                console.log(i)
            })
        }

        arr.forEach(function(item){//item是函数,输出5个5
           item()
        })     

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()//创建一个空集合
        console.log(s1)

        let arr = [11,22,33,44,]
        let s2 = new Set(arr)
        console.log(s2)

(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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值