掌握现代JavaScript:ES7到ES12的新特性全解析!
ES7到ES12的新特性包括:
- ES7: 包括Array.prototype.includes, finally 方法,以及指数运算符.
- ES8: Async/await, Object.values() 和 Object.entries(), 以及字符串的padStart() 和 padEnd().
- ES9: Rest/Spread 属性, 正则表达式命名捕获组, 导出(import) 动态命名.
- ES10: 异步迭代器, Promise.finally(), 空值合并运算符, 可选链运算符.
- ES11: 私有变量, 静态字符串解构, 正则表达式dotAll模式, 正则表达式的命名捕获组的改进.
- ES12: 可选链的改进,动态导入表达式的改进,导出模块的默认导出,预期的新数据类型(BigInt,Symbol,JSON)的新方法。
以下是ES8中的Object.values()和Object.entries()的简单示例:
// Object.values()
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.values(obj)); // Prints: [1, 2, 3]
// Object.entries()
console.log(Object.entries(obj)); // Prints: [['a', 1], ['b', 2], ['c', 3]]
以下是ES10中的可选链和空值合并运算符的示例:
// 可选链
const obj = { a: { b: { c: 1 } } };
console.log(obj.a?.b?.c); // Prints: 1
// 空值合并运算符
console.log(obj.a?.b?.c ?? 'Not found'); // Prints: 1
console.log(obj.d?.b?.c ?? 'Not found'); // Prints: 'Not found'
请注意,这些示例仅展示了新特性的非常简单的用法,每个新特性都有更复杂的用例和更多的细节。
评论已关闭