ES6新特性汇总

154 阅读4分钟

前言

首先es6的出现大大的简化了我们的代码书写,提高了代码的可读性。以及一些新语法,更方便更快捷处理数据。

var let const

1、变量提升:

  • var声明的变量存在变量提升,即变量可以在声明之前调用,值为undefined
  • letconst不存在变量提升,即它们所声明的变量一定要在声明后使用,否则报错

2、暂时性死区:

  • var不存在暂时性死区
  • letconst存在暂时性死区,只有等到声明变量的那一行代码出现,才可以获取和使用该变量

3、块级作用域:

  • var不存在块级作用域
  • letconst存在块级作用域

4、重复声明:

  • var允许重复声明变量
  • letconst在同一作用域不允许重复声明变量

5、修改声明的变量:

  • varlet可以
  • const声明一个只读的常量。一旦声明,常量的值就不能改变
数组新增拓展
  • 拓展运算符 。。。主要用于函数调用的时候,将一个数组变成一个参数序列
  • 可以将某些数据结构转化为数组,能够实现数组的简单复制合并
  • 拓展运算符可以和解构合起来使用,用与生成数组,可以将字符串转成数组
构造函数新增的方法

1、Array.from():将两类对象转为真正的数组:类似数组的对象和可遍历(iterable)的对象(包括 ES6 新增的数据结构 SetMap

  • 可以接受第二个参数,用来对每个元素进行处理,将处理后的值放入返回的数组

2、Array.of():用于将一组值,转换为数组

  • 没有参数的时候,返回一个空数组
  • Array.of(7) 创建一个具有单个元素 7 的数组,而 Array(7) 创建一个 length 为 7 的空数组(这意味着一个由 7 个空槽组成的数组,而不是由 7 个 undefined 组成的数组)
  • 参数个数不少于 2 个时,Array()才会返回由参数组成的新数组

箭头函数与普通函数的区别

  • 箭头函数的语法非常简洁,通常用于定义匿名函数或回调函数。下面是箭头函数的基本语法

  • 匿名函数:当需要传递一个匿名函数作为回调函数时,箭头函数非常方便。它可以用来简化回调函数的定义。

  • 简单函数:当函数体非常简单,只包含一条表达式时,箭头函数可以更加紧凑地表达。

  • 箭头函数与传统函数在处理this上有重要的区别。箭头函数没有自己的this绑定,它会捕获其所在上下文的this值。这个特性使得箭头函数在处理回调函数时非常有用,因为它们不会改变this的值。

  • 总结 箭头函数它通常用于定义匿名函数、简单函数和处理回调函数 -[forEach*]和[map]的主要区别在于它们对数组元素的处理方式、返回值以及是否改变原数组。

  • forEach。forEach方法用于对数组的每个元素执行一个函数,它不会返回任何值,也不会改变原数组。forEach方法允许在匿名函数中对原数组的元素进行修改,这将影响原数组。

  • map。map方法会创建一个新数组,这个新数组包含原数组每个元素经过函数处理后的结果。map方法会返回这个新数组,而不是修改原数组。这意味着map方法不会改变原数组的值。

总结来说,forEach方法主要用于对数组元素执行操作,而不创建新数组;而map方法则用于转换数组元素,并返回一个新数组。

模版字符串

数组去重

[...new Set(array)]

1.利用Set()+Array.from()

2.利用两层循环+数组的splice方法

3.利用数组的indexOf方法

4.利用数组的incloudes

5.利用数组的filter()+indexOf()

6.利用map

条件语句的优化

for of

  1. 遍历范围
  • 数组
  • set
  • map
  • 类数组对象如 arguments 对象、DOM NodeList 对象
  • Generator 对象
  • 字符串
  1. 它结合了 forEach 的简洁性和中断循环的能力

Async代码更加简洁