ES6新特性

108 阅读2分钟

let关键字和const关键字

image.png

image.png 特点:

  1. let和const关键字声明的变量具有块级作用域的特点
  2. let和const关键字声明的变量没有变量提升
  3. let和const关键字声明的变量存在暂时性死区问题

块级作用域

image.png

image.png

块级作用域外面是访问不到里面,只有在块级作用域里面才能访问.

变量提升

变量提升是可以先赋值再声明,var有变量提升问题

image.png

但let和const关键字声明的变量不存在变量提升

image.png image.png

暂时性死区问题

image.png

image.png 使用let声明变量就会将该块级作用域封锁,就算你全局作用域声明过变量,在该块级作用域再次声明该块级作用就域封锁,就无法在声明之前调用。

经典面试题

var声明i

image.png

打印出的结果是声明呢?

image.png

为什么?

我们来拆解一下

image.png

当当前作用域没有此变量时根据作用域查找原则要向上一级作用域查找,发现i = 2 ,因为for循环为主线程,调用函数为异步,先执行完for循环再执行函数调用。

let声明i

image.png

打印结果

image.png

conte声明常量

let、cont、var的区别

image.png

Array扩展方法

一、Array.from()

Array.from()有两个参数

  1. 参数1:要转换的伪数组
  2. 参数2:函数,回调函数的形参参数为数组当前遍历的一项

只有一个参数时

image.png

image.png

有两个参数时

image.png

image.png

第二参数的函数要利用return返回你对数组数据的处理返回到转换好的数组中

数组内置方法find()

find((v,i)=>{return 判断条件})方法将查找到符合条件的对象return返回,我们要用一个变量接收,如果找不到就返回一个undefined

find与filter的区别:find返回的是里面符合条件的值,filter返回的是包含符合条件值的数组

image.png image.png

数组内置方法findIndex()

findIndex((v,i)=>{return 判断条件})方法是用于找出第一个符合条件的数组成员的位置,如果没有找到就返回-1

image.png

image.png

数组内置方法includes()

includes(判断值)返回布尔值,数组里面有就返回true,没有就返回false

image.png

模板字符串

模板字符串用两个反引号括住内容

image.png

image.png

  1. 可以写: 变量, 运算符,调用api ,调用自定义函数,三元表达式
  2. 不可以写:语句,如if for ...

String的扩展方法

startsWith和endsWith

image.png

image.png

repeat()

image.png

image.png

set()数据结构

image.png image.png

它可以实现数组去重的方法返回的是一个对象,我们要将它转换为数组对象

image.png

image.png

set中的一些方法

image.png

image.png

image.png

set中的遍历

image.png

image.png

剩余参数

箭头函数中无法使用argument伪数组存储 image.png

image.png

剩余参数和解构配合使用

image.png

image.png