一 . ES6简介
(1)什么是ES6?
ES的全称是ECMAScript,它是由ECMA国际标准化组织制定的一项脚本语言的语言规范,泛指2015以及后续版本
(2)为什么要使用ES6?
A 变量提升特性增加了程序运行时的不可预测性;
B 语法过于松散,实现相同的功能,不同的人可能写出不同的代码;
二. ES6的新增语法
1.let(ES6中新增的用于声明变量的关键字)
let声明的变量只在处于的块级有效;
不存在变量提升;
ps:使用let关键字声明的变量具有块级作用域,使用var声明的变量不具有块级作用域
2.const(声明常量)
具有块级作用域;
声明常量时必须赋值;
常量赋值后,值不可以修改;
总结:
let、const、var的区别
3.解构赋值(可以将属性/值从对象/数组中取出,赋值给其他变量)
参考链接https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
(1)数组解构
A.解构形式
a.变量声明并赋值时的解构
b.变量先声明后赋值时的解构
B.默认值
为了防止从数组中取出一个值为undefined的对象,可以在表达式左边的数组中为任意对象预设默认值。
C.交换变量
在一个解构表达式中可以交换两个变量的值。
没有解构赋值的情况下,交换两个变量需要一个临时变量(或者用低级语言中的XOR-swap技巧)。
D.解析一个从函数返回的数组
从一个函数返回一个数组是十分常见的情况。解构使得处理返回值为数组时更加方便。
E.忽略某些返回值
你也可以忽略你不感兴趣的返回值:
你也可以忽略全部返回值:
F.将剩余数组赋值给一个变量
当解构一个数组时,可以使用剩余模式,将数组剩余部分赋值给一个变量。
如果剩余元素右侧有逗号,会抛出 SyntaxError,因为剩余元素必须是数组的最后一个元素。
G.用正则表达式匹配提取值
用正则表达式的 exec() 方法匹配字符串会返回一个数组,该数组第一个值是完全匹配正则表达式的字符串,然后的值是匹配正则表达式括号内内容部分。解构赋值允许你轻易地提取出需要的部分,忽略完全匹配的字符串——如果不需要的话。
(2)对象解构
A.基本赋值
B.无声明赋值
一个变量可以独立于其声明进行解构赋值。
C.给新的变量名赋值
可以从一个对象中提取变量并赋值给和对象属性名不同的新的变量名。
D.默认值
变量可以先赋予默认值。当要提取的对象没有对应的属性,变量就被赋予默认值
E.给新的变量命名并提供默认值
一个属性可以同时 1)从一个对象解构,并分配给一个不同名称的变量 2)分配一个默认值,以防未解构的值是undefined。
4.箭头函数(ES6新增的定义函数的方式)
5.剩余参数
三.ES6内置对象扩展
1.Array的扩展方法
(1)扩展运算符
扩展运算符可以将数组或者对象转为用逗号分隔的参数序列
扩展运算符可以应用于合并数组
将类数组或可遍历对象转换为真正的数组
(2).构造函数方法Array.from()
将伪数组或可遍历对象转换为真正的数组
方法还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组
(3).实例方法find()——用于找出第一个符合条件的数组成员,如果没有找到返回undefined
(4).实例方法findIndex()——用于找出第一个符合条件的数组成员的位置,如果没有找到返回-1
(5).实例方法includes()——表示某个数组里是否包含给定的值,返回布尔值
2.String的扩展方法
(1)模板字符串
(2)实例方法startsWith()和endsWith()
(3)实例方法repeat()