ES9 是 ECMAScript 2018 的一个版本,它增加了一些新的特性和语法,包括对象、数组和字符串的一些增强。本文将详细介绍这些增强,包括它们的深度和学习意义,并提供示例代码。
对象增强
Rest/Spread 属性
ES9 引入了 Rest/Spread 属性,使得操作对象的属性更加方便。Rest 属性用于将对象中的一组属性提取出来,形成一个新的对象;而 Spread 属性则用于将一个对象中的属性展开到另一个对象中。
const person = { name: 'Alice', age: 30, address: 'Beijing' }; const { name, ...rest } = person; console.log(name); // 'Alice' console.log(rest); // { age: 30, address: 'Beijing' } const newPerson = { ...person, gender: 'female' }; console.log(newPerson); // { name: 'Alice', age: 30, address: 'Beijing', gender: 'female' }
Object.fromEntries()
ES9 引入了 Object.fromEntries() 方法,用于将一个包含键值对的数组转换为一个对象。
const entries = [['name', 'Alice'], ['age', 30], ['address', 'Beijing']]; const person = Object.fromEntries(entries); console.log(person); // { name: 'Alice', age: 30, address: 'Beijing' }
数组增强
Array.prototype.flat()
ES9 引入了 Array.prototype.flat() 方法,用于将多维数组转换为一维数组。
const arr = [1, 2, [3, 4, [5, 6]]]; const flatArr = arr.flat(); console.log(flatArr); // [1, 2, 3, 4, 5, 6]
Array.prototype.flatMap()
ES9 引入了 Array.prototype.flatMap() 方法,它类似于 map() 和 flat() 方法的组合,用于对数组进行映射和扁平化操作。
const arr = ['Hello', 'World']; const flatMapArr = arr.flatMap(word => word.split('')); console.log(flatMapArr); // ['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd']
Array.prototype.sort()
ES9 对 Array.prototype.sort() 方法进行了优化,使其在处理数值类型的数组时更加高效。
const arr = [3, 2, 1]; arr.sort(); console.log(arr); // [1, 2, 3]
字符串增强
String.prototype.trimStart() 和 String.prototype.trimEnd()
ES9 引入了 String.prototype.trimStart() 和 String.prototype.trimEnd() 方法,用于去除字符串开头和结尾的空白字符。
const str = ' Hello, World! '; console.log(str.trimStart()); // 'Hello, World! ' console.log(str.trimEnd()); // ' Hello, World!'
String.prototype.padStart() 和 String.prototype.padEnd()
ES9 引入了 String.prototype.padStart() 和 String.prototype.padEnd() 方法,用于在字符串开头或结尾添加指定的字符,直到字符串达到指定长度。
const str = 'Hello'; console.log(str.padStart(10, '*')); // '*****Hello' console.log(str.padEnd(10, '*')); // 'Hello*****'
总结
ES9 对对象、数组和字符串进行了一些增强,包括 Rest/Spread 属性、Object.fromEntries()、Array.prototype.flat()、Array.prototype.flatMap()、String.prototype.trimStart()、String.prototype.trimEnd()、String.prototype.padStart() 和 String.prototype.padEnd() 等方法。这些增强使得开发者能够更加方便地操作对象、数组和字符串,提高了开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/662da6e1d3423812e4b31017