一文读懂ES6新特性

一、什么是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遍历
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43242112/article/details/106952185