一、什么是ES6
泛指ES2015以及后续的版本。
二、let声明变量
一、let声明变量的特点
- 1、let声明的变量只在所处的块级作用域有效。块级作用域:{ }包含的就是块级作用域
可以防止循环变量变成全局变量。 - 2、不存在变量提升。也就是不存在预解析。只能先声明,再使用。
- 3、暂时性死区。一旦在块级作用域当中声明了某个变量,这个变量名就会和块级作用域绑定,也是必须先声明再使用。和块级作用域绑定之后,一个块级作用域只能有一个该变量,例如一个if块中声明有两个num变量是不允许的
二、经典面试题
三、const声明常量
常量就是指内存地址不能变化的量。
一、const声明常量的特点
- 1、const声明的常量只在所处的块级作用域有效。块级作用域:{ }包含的就是块级作用域
- 2、必须赋初始值。
- 3、常量赋值后,值(内存地址值)不能修改。简单类型不能修改值,复杂类型可以修改内部的值(不会影响内存地址)。
- 4、不存在变量提升。
四、解构赋值
ES6允许从数组中提取值,按照对应位置,对变量赋值,对象也可以实现解构。
一、数组解构
当解构不成功时,输出undefined。
二、对象解构
- 方式一:
- 方式二:
五、箭头函数
定义:const fn = (形参)=>{ 函数体 };
调用:fn();
特点:
- 1、函数体中只有一句代码,并且这句代码的执行结果就是函数的返回值,这时大括号可以省略。
- 2、如果形参只有一个,小括号可以省略。
- 3、之前的this是谁调用就指向谁,但是在箭头函数中不绑定this关键字,jia透函数中的this,指向的是函数定义位置的上下文的this。
面试题:
六、剩余参数
剩余参数语法允许我们将一个不定数量的参数表示为一个数组。
注意:箭头函数中没有arguments。…args就是剩余参数。相当于Java的可变参数。
七、扩展运算符
扩展运算符可以将数组或者对象转为以逗号分隔的参数序列。
应用:合并数组。
应用:将伪数组转换成真正的数组。Array.from(伪数组);
八、模板字符串
模板字符串是使用反引号引起来的字符串。
- 1.可以解析变量
- 2.可以换行
- 3.可以调用函数
九、Set数据结构
ES6提供了新的数据结构Set,它类似于数组,但是成员的属性是唯一的
,没有重复的值。
- 1.应用:数组去重。
let arr = [1,2,2,3,4,4]
// 方法封装
function arrDistinct(arr){
// ES6中的set数据结构
const newArr = new Set(arr);
// ...是ES6中的扩展运算符
return [...newArr]
}
console.log(arrDistinct(arr))
- 2.相关方法
- 3.Set遍历