新增的声明关键字
let,const,class,import,exportlet
不允许变量名重复全局变量不属于window块级作用域:花括号就是作用域不存在提升暂时性死区 const
拥有let所有特点常量,声明之后地址不允许被修改,值可以修改 使用建议: const > let > var
新增的箭头函数:非正常函数,不能直接使用,只能作为值使用
语法,极简:()=>{}
当有且只有一个参数时,可以省略小括号当有且直接设置了返回值时,可以省略花括号和return
注意:花括号和return必须同时省略 直接返回对象时,如果需要省略return,需要将对象再套一层小括号 箭头函数内部没有this,使用上一层的this使用场景
- 作为赋值式创建函数的值作为参数使用(回调函数)作为返回值使用(闭包函数)作为匿名函数的函数体作为事件处理函数,不建议
新增的运算符 - 展开运算符
用来操作复杂数据(打包之后的数据),数组和对象展开之后,数据一定要放在合适的位置
数组:只能在能接收多个数据的位置展开对象:只能在能接收键值对的位置展开 语法:...数据应用:
深拷贝合并快速传参…等等等
新增的解构赋值
解构:解开复杂数据的结构进行赋值,数组和对象和字符数组:从左向右依次解构,超出数据长度,解构出undefined
let [a, c, b] = [3, 4, 5]; 对象:按照键(key)一一对应,不存在的key为undefined
let {age,name} = {name:"admin",age:18}; 字符:类似于数组
let [a,s,d,f] = "hello"; 应用:
快速传参交换变量的值…等等等
字符串的新增
对Unicode编码中无法被一个四位的十六进制表示的字符提供的支持
如:ஹ,需要被两个四位的十六进制表示将字符转成Unicode编码:“ஹ”.codePointAt()将Unicode编码转成字符:String.fromCodePoint(134073) Unicode编码在浏览器中新的表示方式
“u{20bb9}” 字符的方法
是否包含指定:str.includes(子串)是否以指定开头:str.startsWith(子串)是否以指定结尾:str.endsWith(子串)重复字符串:str.repeat(n) 字符串模板
要求使用反引号包裹字符串:`在反引号包裹的字符串中,使用${}标记变量支持在代码中直接换行表示
新的数据类型:Symbol
Symbol
类字符的数据类型,突出了字符的标记功能,Symbol类型主要用来做标记数据使用。自身的值,并不是那么重要,主要是自身所表示的标记创建Symbol
let s1 = Symbol();任何两个Symbol都不相等 Symbol使标记的定义和使用,容错率更高,语义化更好
ES6新增 - 数据集合
- 数据的新的集合形式,不是新的数据类型,之前的数据集合形式:数组,对象ES6新增了:set集合和map集合set集合:对应数组,但不允许数据重复
创建:new Set(数组)
- map集合:对象对象,但不存在键值对,本质为值值对
创建:new Map()
- 方法或属性
数据的个数:s|m.size数据中值对应的名字集合:s|m.keys()数据中值的集合:s|m.values()数据中数据的集合:s|m.entries()给set添加数据:s.add(值)给map添加数据:m.set(名, 值)读取map的数据:m.get(名)
- 新的遍历方式:for-of
for-in遍历的是索引或key
无法遍历set和map for-of遍历的是值
无法遍历对象



