1.let 和const
let与const共同点:没有变量提升,不可以重复声明,都有块级作用域
let与const不同点:let定义变量,const定义常量,不能改变普通类数据.let可以先声明变量后赋值,但 是const声明后必须赋值.
2. 箭头函数
使用"箭头"来定义函数,相当于匿名函数,简化了函数定义;
特征:
a:箭头函数没有this,this指向定义箭头函数所处的外部环境
b:箭头函数的this不可改变,call、bind、apply不可以
c:声明只能匿名,但可以通过表达式让它具名
d:箭头函数没有prototype
e:箭头函数因为this指向问题,不能作为构造函数
f:箭头函数没有arguments,内部访问arguments是外部环境的arguments,可以使用...代替
3、解构赋值
应用场景: 交换变量值
函数多个返回值
定义函数参数
定义函数参数默认值
注意点: 赋值符号两边的模式相同,左边的变量会被赋予对应的值
规则:只要等号右边值不是对象或数组,先将其转为对象
遵循匹配模式
解构不成功时变量值等于undefined
undefined和null 无法转为对象,无法解构
4、promise
js中进行异步编程的新的解决方案(解决回调地狱)
5、class 类
6,模块化,import 、export 实现导入导出
import ‘模块名称’ from ‘路径’;
import ‘路径’;
const name = '懒洋洋',age = 3;
export {name,age};
//注意:变量需要用大括号包裹,然后才能向外输出
7.运算符
... 扩展运算符
可选链 ?.
函数绑定运算符::
8、模板字符串
用${}来包裹;
反引号(``)直接包裹拼接多个;
9、symbol
Symbol是ES6中引入的一种新的基本数据类型,用于表示一个独一无二的值,不能与其他数据类型进行运算。它是JavaScript中的第七种数据类型,与undefined、null、Number(数值)、String(字符串)、Boolean(布尔值)、Object(对象)并列。
使用Symbol()创建一个Symbol类型的值并赋值给a变量后,你就得到了一个在内存中独一无二的值。现在除了通过变量a,任何人在任何作用域内都无法重新创建出这个值