前言
首先es6的出现大大的简化了我们的代码书写,提高了代码的可读性。以及一些新语法,更方便更快捷处理数据。
var let const
1、变量提升:
var声明的变量存在变量提升,即变量可以在声明之前调用,值为undefinedlet和const不存在变量提升,即它们所声明的变量一定要在声明后使用,否则报错
2、暂时性死区:
var不存在暂时性死区let和const存在暂时性死区,只有等到声明变量的那一行代码出现,才可以获取和使用该变量
3、块级作用域:
var不存在块级作用域let和const存在块级作用域
4、重复声明:
var允许重复声明变量let和const在同一作用域不允许重复声明变量
5、修改声明的变量:
var和let可以const声明一个只读的常量。一旦声明,常量的值就不能改变
数组新增拓展
- 拓展运算符 。。。主要用于函数调用的时候,将一个数组变成一个参数序列
- 可以将某些数据结构转化为数组,能够实现数组的简单复制合并
- 拓展运算符可以和解构合起来使用,用与生成数组,可以将字符串转成数组
构造函数新增的方法
1、Array.from():将两类对象转为真正的数组:类似数组的对象和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)
- 可以接受第二个参数,用来对每个元素进行处理,将处理后的值放入返回的数组
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
- 遍历范围
- 数组
- set
- map
- 类数组对象如 arguments 对象、DOM NodeList 对象
- Generator 对象
- 字符串
- 它结合了 forEach 的简洁性和中断循环的能力