ES6语法

目标

ES6相关概念(★★)

什么是ES6

ES 的全称是 ECMAScript , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范。

为什么使用 ES6 ?

每一次标准的诞生都意味着语言的完善,功能的加强。JavaScript语言本身也有一些令人不满意的地方。

ES6新增语法

let(★★★)

ES6中新增了用于声明变量的关键字

let声明的变量只在所处于的块级有效

注意:使用let关键字声明的变量才具有块级作用域,使用var声明的变量不具备块级作用域特性。

不存在变量提升

暂时性死区

利用let声明的变量会绑定在这个块级作用域,不会受外界的影响

经典面试题

经典面试题图解:此题的关键点在于变量i是全局的,函数执行时输出的都是全局作用域下的i值。

经典面试题图解:此题的关键点在于每次循环都会产生一个块级作用域,每个块级作用域中的变量都是不同的,函数执行时输出的是自己上一级(循环产生的块级作用域)作用域下的i值.

小结

const(★★★)

声明常量,常量就是值(内存地址)不能变化的量

具有块级作用域

声明常量时必须赋值

常量赋值后,值不能修改

小结

let、const、var 的区别

解构赋值(★★★)

ES6中允许从数组中提取值,按照对应位置,对变量赋值,对象也可以实现解构

数组解构

对象解构

小结

箭头函数(★★★)

ES6中新增的定义函数的方式。

函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号

如果形参只有一个,可以省略小括号

箭头函数不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this

小结

面试题

剩余参数(★★)

剩余参数语法允许我们将一个不定数量的参数表示为一个数组,不定参数定义方式,这种方式很方便的去声明不知道参数情况下的一个函数

剩余参数和解构配合使用

ES6 的内置对象扩展

Array 的扩展方法(★★)

扩展运算符(展开语法)

扩展运算符可以将数组或者对象转为用逗号分隔的参数序列

扩展运算符可以应用于合并数组
将类数组或可遍历对象转换为真正的数组

构造函数方法:Array.from()

将伪数组或可遍历对象转换为真正的数组

方法还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组

注意:如果是对象,那么属性需要写对应的索引

实例方法:find()

用于找出第一个符合条件的数组成员,如果没有找到返回undefined

实例方法:findIndex()

用于找出第一个符合条件的数组成员的位置,如果没有找到返回-1

实例方法:includes()

判断某个数组是否包含给定的值,返回布尔值。

String 的扩展方法

模板字符串(★★★)

ES6新增的创建字符串的方式,使用反引号定义

模板字符串中可以解析变量
模板字符串中可以换行
在模板字符串中可以调用函数

实例方法:startsWith() 和 endsWith()

实例方法:repeat()

repeat方法表示将原字符串重复n次,返回一个新字符串

Set 数据结构(★★)

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。

Set本身是一个构造函数,用来生成 Set 数据结构

Set函数可以接受一个数组作为参数,用来初始化。

实例方法

遍历

Set 结构的实例与数组一样,也拥有forEach方法,用于对每个成员执行某种操作,没有返回值。