预解析
- 含义:变量的声明会提升到当前作用域最顶端
- ES5中的var是具有预解析的弊端的,ES6中let直接代替var,let没有预解析
箭头函数this指向
- 箭头函数没有this
- 本质是: 访问上级作用域中的this
- 由于箭头函数没有this,所以箭头函数不能作为构造函数(new会修改this指向,而箭头没有this
- 箭头函数也无法修改this(call apply bind)对箭头函数是无效的
展开运算符
- 展开运算符:… 相当于对象遍历的简写
- 应用:
- 连接数组(上拉加载下一页) : 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的方法:
- true: 有符合条件的元素
2. false:没有符合条件的元素
- true: 有符合条件的元素
数组every
方法:判断数组中 是否所有的 元素都满足条件
every方法:
- return true : 循环继续 ,满足条件,如果元素全部遍历还是true,则最终结果是true
- return false : 循环结束。 只要要到不满足条件的元素, 循环结束,最终结果是false
数组reduce
方法:数组累加器方法
对数组每一个元素执行一次回调函数,累加最后一次回调的结果
场景:求数组的和,数组元素的最大值