- let:用于声明变量
- let声明的变量只在所处于的块级有效,具有块级作用域(var没有块级作用域)
- 不存在变量提升(先声明再使用)
- 暂时性死区(在块级内声明了变量就会和这个块级绑定,与块级外的同名变量无关)
- const:声明常量,值(内存地址)不能变化
- 具有块级作用域
- 必须赋初始值
- 不能更改值(地址)(数组可以a[0]、a[1]修改内容,但是不可以重新赋值,更常量地址,eg:a=[xx,xx])
- 解构赋值:允许从数组中提取值,按照对应位置,对变量赋值,对象也可以实现解构
- 如果解构不成功(没有对应的值),就为undefined
- 允许我们使用变量的名字匹配对象的属性,匹配成功将对象属性的值赋值给变量
- 从数组中或从对象中提取值,将提取出来的值赋值给另外的变量
- 箭头函数()=> { }
- 不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this
- 剩余参数:允许我们将一个不定数量的参数表示为一个数组"...args"三个点加数组名,args表示接受剩余元素
- 和解构赋值配合使用
- 扩展运算符:
- 将数组或者对象转为用逗号分隔的参数序列,打印的时候会以逗号分隔,不打印出逗号
- 数组合并
- 先分隔再把分隔后的序列放在一个新的数组里ary3[...ary1,...ary2]
- 用push,把一个加到另一个末尾ary1.push(...ary2)
- 将伪数组或可遍历对象转换为真正的数组
- Array
- 扩展方法:Array.from()
- 将伪数组或可遍历对象转换为真正的数组
- 方法还可以接受第二个参数(一个函数),作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组
- 实例方法
- find(item => item==2)用于找出第一个符合条件的数组成员,如果没有找到返回undefined
- findIndex(value => value>9)找出第一个符合条件的数组成员的位置,如果没有找到返回-1
- includes()表示某个数组是否包含给定的值,返回布尔值
- 扩展方法:Array.from()
- 模板字符串
- 创建字符串,用反引号定义`` tab上面
- 模板字符串中可以解析变量 ${变量名} 可以获取变量值
- 可以换行
- 可以调用函数${fn( )}
- startsWith()和endsWith()
- 表示参数字符串是否在原字符串的头(尾)部,返回布尔值
- repeat()
- 将原字符串重复n次,返回一个新字符串
- Set数据结构:类似于数组,但是成员的值都是唯一的,没有重复的值
- Set本身是一个构造函数,用来生成Set数据结构
- const s = new Set(),可以接受一个数组作为参数,用来初始化
- 利用set数据结构做数组去重
- Set对象实例方法
- add(value):添加某个值,返回Set结构本身
- delete(value):删除某个值,返回一个布尔值,表示删除是否成功
- has(value):返回一个布尔值,表示该值是否为Set的成员
- clear():清除所有成员,没有返回值
- 遍历Set
- 与数组一样,也有forEach方法,用于对每个成员执行某种操作,没有返回值
- s.forEach(value => {console.log(value)} )
- 与数组一样,也有forEach方法,用于对每个成员执行某种操作,没有返回值
- Set本身是一个构造函数,用来生成Set数据结构