1、let与const
- let 声明的变量只在 let 命令所在的代码块内有效。只能声明一次;不存在变量提升
- const 声明一个只读的常量,一旦声明,常量的值就不能改变。只能声明一次;不存在变量提升
- var 是在全局范围内有效;var 可以声明多次;var 会变量提升:
2、解构赋值
- 解构的源,解构赋值表达式的右边部分。
- 解构的目标,解构赋值表达式的左边部分。

3、Symbol:新的原始数据类型,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。
4、Map 与 Set
- Maps 和 Objects 的区别
- 一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值。
- Map 中的键值是有序的(FIFO 原则),而添加到对象中的键则不是。
- Map 的键值对个数可以从 size 属性获取,而 Object 的键值对个数只能手动计算。
- Object 都有自己的原型,原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。
- Map 的迭代
- for...of:entries();keys();values()
- forEach()
- Map 对象的操作
-
- Map 与 Array的转换:Array.from(myMap)
- Map 的克隆:new Map(myMap);
- Map 的合并:new Map([...first, ...second]);
- Set 对象:存储的值总是唯一的,所以需要判断两个值是否恒等
- +0 与 -0 在存储判断唯一性的时候是恒等的,所以不重复;
- undefined 与 undefined 是恒等的,所以不重复;
- NaN 与 NaN 是不恒等的,但是在 Set 中只能存一个,不重复。
- Set 对象作用
5、Reflect 与 Proxy:可以用于获取目标对象的行为
6、ES6 字符串
- includes():返回布尔值,判断是否找到参数字符串。
- startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。
- endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。
- repeat():返回新的字符串,表示将字符串重复指定次数返回。
- padStart:返回新的字符串,表示用参数字符串从头部(左侧)补全原字符串。
- padEnd:返回新的字符串,表示用参数字符串从尾部(右侧)补全原字符串。
- 模板字符串:`
7、数值
- 二进制表示法新写法: 前缀 0b 或 0B 。
- 八进制表示法新写法: 前缀 0o 或 0O 。
- 常量:Number.EPSILON:表示 1 与大于 1 的最小浮点数之间的差。它的值接近于 2.2204460492503130808472633361816E-16,或者 2-52。测试数值是否在误差范围内
- Number 对象新方法
- Number.isFinite():用于检查一个数值是否为有限的( finite ),即不是 Infinity
- Number.parseInt():用于将给定字符串转化为指定进制的整数。
- Math 对象的扩展
- 普通计算
- 数字处理
- 判断
- 对数方法
- 双曲函数方法
- 指数运算符
8、对象
- 属性的简洁表示法
- 属性名表达式:ES6允许用表达式作为属性名,但是一定要将表达式放在方括号内。
- 拓展运算符(...)用于取出参数对象所有可遍历属性然后拷贝到当前对象。
- 可用于合并两个对象
- 自定义的属性和拓展运算符对象里面属性的相同的时候:自定义的属性在拓展运算符后面,则拓展运算符对象内部同名的属性将被覆盖掉
- 对象的新方法
- Object.assign(target, source_1, ···):用于将源对象的所有可枚举属性复制到目标对象中。assign 的属性拷贝是浅拷贝:
- Object.is(value1, value2):用来比较两个值是否严格相等,与(===)基本类似。
9、数组
- Array.of():将参数中所有值作为元素形成数组。
- Array.from():将类数组对象或可迭代对象转化为数组。类数组对象:一个类数组对象必须含有 length 属性,且元素属性名必须是数值或者可转换为数值的字符。
- find():查找数组中符合条件的元素,若有多个符合条件的元素,则返回第一个元素。
- findIndex():查找数组中符合条件的元素索引,若有多个符合条件的元素,则返回第一个元素索引。
- fill():将一定范围索引的数组元素内容填充为单个指定的值。
- copyWithin():将一定范围索引的数组元素修改为此数组另一指定范围索引的元素。
- keys():遍历键名
- values():遍历键值。
- includes():数组是否包含指定值。
- flat():嵌套数组转一维数组
- flatMap():先对数组中每个元素进行了的处理,再对数组执行 flat() 方法。
10、 函数
- 函数参数的扩展:function fn(arg1,arg2=value)
- 不定参数用来表示不确定参数个数,形如,...变量名,由...加上一个具名参数标识符组成。具名参数只能放在参数组的最后,并且有且只有一个不定参数。
- 箭头函数提供了一种更加简洁的函数书写方式
11、迭代器
12、Class 类
13、模块
14、Promise 对象
15、Generator 函数
16、async 函数
ES6 学习笔记
原文:https://www.cnblogs.com/leehuilin/p/12966379.html