(1)let const
1.都会产生块级作用域
2.const不可以在重新赋值。可以更改内存地址的值
3.没有变量提升
4.使用let和const定义的变量 不属于window
(2) 箭头函数
注意点:
1.如果只有一个参数 可以省略()
2.如果只有一个表达式可以省略{}
3.如果返回的是一个对象 ({属性:值})
4.箭头函数 没有 arguments
5.箭头函数没有自己的this 也无法改变this
6.箭头函数不可以实例化
注意点:箭头函数的this 看外层是否有函数 要是外层有函数 外层函数的this就是内层箭头函数的this指向 要是没有 那还是指向window
(3)模板字符串 (必须使用反引号)
(4)剩余参数 (以三个点为前缀命名的参数 真数组) 一般和解构配合使用
(4.1)动态参数 argument 伪数组
(5)Symbol
(1)引入的新的基本数据类型 保证每一个属性名都是独一无二的,从根本上上防止属性名的冲突
(2)利用Symbol可以存储唯一的值
(3)Symbol函数不是构造函数,不能通过new来构造实例,
(4)Symbol 值不能与其他类型的值进行运算,会报错
(6)类
(1)面向对象 具备属性和方法
(2)可以通过关键词class去声明创建一个类。调用方法和构造函数的方法相同
(7)set和map
(1)set用于数据重组,map用于数据存储
set:(1)成员不能重复 (2)只有键值没有键名,类似数组 (3)可以遍历,方法有add、delete、has
map :(1)本质上是键值对的集合,类似集合 (2)可以遍历 可以和各种数据格式进行转换
(8)proxy
用于创建一个对象的代理,从而实现基本操作的拦截和自定义 比如说:属性查找、赋值、枚举、函数调用等
可以对外界的访问进行过滤和改写。 相当于在目标对象之前设置一层拦截 外界对对象的访问必须先通过这个拦截