赞
踩
在过去几年里,ECMAScript 标准不断更新,引入了许多令人激动的功能和改进。让我们来看看从 ES7 到 ES12 各个版本带来的重要变化:
Array.prototype.includes 方法用于判断数组是否包含特定元素,并返回相应的布尔值。
const array = [1, 2, 3, 4, 5];
console.log(array.includes(3)); // 输出:true
console.log(array.includes(6)); // 输出:false
指数运算符 ** 可以用于计算幂运算。
console.log(2 ** 3); // 输出:8(2的3次方)
Object.values 和 Object.entries 方法分别用于获取对象的值数组和键值对数组。
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.values(obj)); // 输出:[1, 2, 3]
console.log(Object.entries(obj)); // 输出:[['a', 1], ['b', 2], ['c', 3]]
padStart 和 padEnd 方法用于在字符串的开头或结尾填充指定字符,以达到指定的长度。
const str = '123';
console.log(str.padStart(5, '0')); // 输出:00123
console.log(str.padEnd(5, '0')); // 输出:12300
Promise.finally 方法用于指定不管 Promise 对象最后状态如何都会执行的操作。
fetch('https://api.example.com/data')
.then(response => response.json())
.catch(error => console.error(error))
.finally(() => console.log('Request completed'));
Rest/Spread 属性让您可以更方便地操作对象和数组。
const { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
console.log(x); // 输出:1
console.log(y); // 输出:2
console.log(z); // 输出:{ a: 3, b: 4 }
Array.prototype.flat() 方法用于将多维数组(嵌套数组)"扁平化"为一维数组,而 Array.prototype.flatMap() 方法则在执行 flat 后,再对每个元素执行一个映射函数,最后将结果组合成一个新数组。
const arr = [1, 2, [3, 4]];
const flatArr = arr.flat();
console.log(flatArr); // Output: [1, 2, 3, 4]
const newArr = arr.flatMap(x => [x * 2]);
console.log(newArr); // Output: [2, 4, 6, 8]
Object.fromEntries() 方法可以将一个键值对列表转换为一个对象。
const entries = [['a', 1], ['b', 2], ['c', 3]];
const obj = Object.fromEntries(entries);
console.log(obj); // Output: { a: 1, b: 2, c: 3 }
可选链操作符 ?. 可以简化访问深层嵌套属性时的代码,避免因为中间属性不存在而抛出错误。
const obj = {
foo: {
bar: {
baz: 42
}
}
};
console.log(obj.foo?.bar?.baz); // Output: 42
Nullish 合并运算符 ?? 可以用来提供默认值,但只有在值为 null 或 undefined 时才会生效。
const foo = null ?? 'default';
console.log(foo); // Output: 'default'
Promise.allSettled() 方法接收一组 Promise 对象,等所有 Promise 都已解决(settled)后返回一个 Promise 对象,该对象包含每个 Promise 的结果。
const promises = [
Promise.resolve('Success'),
Promise.reject('Error'),
];
Promise.allSettled(promises)
.then(results => results.forEach(result => console.log(result.status, result.value)))
// Output: "fulfilled Success" 和 "rejected Error"
以上就是ES7、ES8、ES9、ES10、ES11、ES12 新特性汇总合集啦有用就点个赞吧~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。