ES6新增的一些常用语法

115 阅读2分钟

预解析

  • 含义:变量的声明会提升到当前作用域最顶端
  • ES5中的var是具有预解析的弊端的,ES6中let直接代替var,let没有预解析

箭头函数this指向

  1. 箭头函数没有this
  2. 本质是: 访问上级作用域中的this
  3. 由于箭头函数没有this,所以箭头函数不能作为构造函数(new会修改this指向,而箭头没有this
  4. 箭头函数也无法修改this(call apply bind)对箭头函数是无效的

展开运算符

  1. 展开运算符:... 相当于对象遍历的简写

  2. 应用:

    • 连接数组(上拉加载下一页) : arr1.push(...arr2)
    • 求数组最大值 : Math.max(...arr)
  let arr = [20,0,60,88,100,50]
 ​
         //ES5 : Math.max.apply(Math,arr)
         let max1 =  Math.max.apply(Math,arr)
         console.log( max1 )
 ​
         //ES6 : Math.max(...arr)
         let max2 =  Math.max(...arr)
         console.log( max2 )
         

数据类型 Set : 集合

  • Set相当于是数组类型,和数组Array唯一的区别是不能存储重复元素

  • set是配合数组一起使用的,否则会报错

  • 应用:

    • 数组去重

数组去重案例:

     let newArr = [...new Set(arr)]
     console.log(newArr)

方法二:

 //1.先把数组去重,在给去重数组一个对象,再把伪数组变成数组
 let newArr =  Array.from(new Set(arr))
         console.log(newArr)

数组some

  • some场景 : 判断数组中是否有满足条件的元素(一个就直接true)

  • some的方法:

    1. true: 有符合条件的元素

      1. false:没有符合条件的元素

数组every

方法:判断数组中 是否所有的 元素都满足条件

    every 方法:

0. return true : 循环继续 ,满足条件,如果元素全部遍历还是true,则最终结果是true 0. return false : 循环结束。 只要要到不满足条件的元素, 循环结束,最终结果是false

数组reduce

方法:数组累加器方法

对数组每一个元素执行一次回调函数,累加最后一次回调的结果

场景:求数组的和,数组元素的最大值