什么是ES6?
- 指的是在2015年之后发布的版本的泛指
let的用法
- let声明的变量有块级作用域的概念,只能在定义的作用域中使用,块级作用域指的是大括号中
- let声明的变量只能先声明在使用,没有变量提升
- 在大括号中用let关键字生命的变量,是被绑定的,不受外部的影响,具有暂时性死区的特性
const的用法
- const用来定义常量,常量对应的内存地址不能更改,也具有块级作用域的概念
- const生命的常量,必须赋值,基本数据类型不可更改,复杂数据类型可以更改(数组可以更改其中的值),但是不能赋值
解构赋值
- 数组解构:允许我们按照一一对应的关系把数组中的值取出来赋值给变量
-
let arry = [1,2,3] let [a,b,c] = arry console.log(a) console.log(b) console.log(c)//注意:左边不是数组是一一对应的变量a,b,c - 对象解构:允许我们使用变量的名字匹配对象的属性,匹配成功把对象属性的值赋值给这个变量
-
let person = {name:'李四',age:20,sex:1} let {name,age, sex} = person console.log(name)//李四 console.log(age)//20 console.log(sex)//1
箭头函数
-
const fn = () => {} - 特点一:当箭头函数函数体中只有一句代码,并且这句代码的执行结果就是这个函数的返回值,那么多大括号可以省略
- 特点二:当箭头函数的形参只有一个时,那么这个小括号也可以省略
- 箭头函数没有自己的this关键字,如果在箭头函数中使用this,那么这个this指向的是箭头函数定义的位置
- 对象不能产生作用域,在对象中定义的箭头函数,this指向的全局window
剩余参数
- 当箭头函数中的参数不固定时,使用args关键字
-
const sum = (...args) => { let total = 0; args.forEach( item => total+=item ); return total } console.log(sum(12,23)) console.log(sum(23,34,56)) - 剩余参数可以和解构配合使用
- 数组合并
-
//方法一 const a = [1,2,3] const b = [4,5,6] const c = [...a, ...b] //输出结果[1,2,3,4,5,6] //方法二 const c = b.push(...a)//输出结果[1,2,3,4,5,6] - 剩余参数可以将伪数组转化为真数组
- Array.from()也可以将伪数组转化为真数组,并且还有一个回调函数
- Array.find()查找数组中第一哥满足条件的值,然后返回
- Array.findIndex()查找数组中值对应的索引位置,并返回
- Array.includes()查找数组中是否包含莫个值,返回布尔true/false
模板字符串
- 模板字符串使用``来定义的,拼接字符串的时候不需要用+号可以使用${}来拼接、
- ${}中也可以调用函数,返回函数的返回值
- startsWith()/endswith()判断是否以莫个字符开始/结尾,返回布尔值
- repeat()将莫个字符串重复输出多少次,返回新字符串
Set数据结构
- 什么是Set数据结构?类似数组,但是不能有重复的值,也是一个构造函数
-
const s = new Set([1,2,3])//可以这样定义 - 利用Set数据结构去重?
-
const s = new Set([1,2,3,3,4,2,5]) const s1 = [...s]//输出[1,2,3,4,5] - Set数据结构中的方法和属性
- size属性,返回Set数据结构中的值的个数
- add()方法往Set数据中添加值,可以多次添加
- delete()删除Set数据中的值,参数为字符串
- has()Set数据结构中是否包含莫个值,返回布尔值
- Set数据结构取值,类似数组中一样可以使用forEach()来遍历