ECMAScript 6 新特性
1. let const 关键字
2. 变量的解构赋值
3. 模板字符串
4. 简化对象写法
5. 箭头函数
6. 函数参数的默认值
7. Rest 参数
8. Spread 扩展运算符
9. Symbol
10 迭代器
11 生成器
12 Promise
13. Set
14. Map
15. Class 类
16. 数值扩展
17. 对象扩展
18. 模块化
ECMASript 7 新特性
1. Array.prototype.includes
Array.prototype.includes
方法用来检测数组中是否包含某个元素,返回布尔类型值。
let arr = [1, 2, 3, 4, 5];
console.log(arr.includes(3)); // true
console.log(arr.includes(6)); // false
2. 指数操作符
在ES7中引入指数运算符 **
,用来实现幂运算,功能与 Math.pow
结果相同。
console.log(2 ** 3); // 8
console.log(Math.pow(2, 3)); // 8
ECMASript 8 新特性
1. async和await
async
和 await
两种语法结合可以让异步代码像同步代码一样。
1.1. async函数
async
函数的返回值为Promise
对象。Promise
对象的结果由async
函数执行的返回值决定。
async function fetchData() {
return 'Data';
}
fetchData().then(data => console.log(data)); // 输出:Data
1.2. await表达式
await
必须写在async
函数中。await
右侧的表达式一般为Promise
对象。await
返回的是Promise
成功的值。- 如果
await
的Promise
失败了,就会抛出异常,需要通过try...catch
捕获处理。
async function fetchData() {
try {
let response = await fetch('https://api.example.com/data');
let data = await response.json();
console.log(data);
} catch (error) {
console.error('Fetch error:', error);
}
}
fetchData();
2. Object.values和Object.entries
2.1. Object.values()
Object.values()
方法返回一个给定对象的所有可枚举属性值的数组。
const obj = {
a: 1, b: 2, c: 3 };
console.log(Object.values(obj