ECMAScript是一种通用的脚本编程语言,用于Web应用程序和其他环境中的计算机程序。ECMAScript 2018(ES9)是ECMAScript的最新版本,也是JavaScript的一部分。本文将深入介绍ES9中的新对象语法,详细说明其含义、用法和示例代码。
1. 对象展开语法
对象展开语法是ES9中的一个新特性,它提供了一种快速操作复杂对象的方法。该特性使用三个点“...”表示,其作用是将一个对象展开为另一个对象。展开时会复制对象中的所有属性,并从原始对象中删除指定的属性。
1.1 常规用法
对象展开语法的常规用法是将一个对象合并到另一个对象中。例如,有两个对象:
const person = { name: '张三', age: 20, gender: '男' } const info = { height: '180cm', weight: '65kg' }
如果想将info中的属性合并到person中,可以使用展开语法:
const newPerson = { ...person, ...info } console.log(newPerson)
输出结果为:
{ name: '张三', age: 20, gender: '男', height: '180cm', weight: '65kg' }
1.2 删除属性
对象展开语法不仅可以合并属性,还可以删除不需要的属性。例如,我们想从person对象中删除“gender”属性,可以这么写:
const { gender, ...newObj } = person console.log(newObj)
输出结果为:
{ name: '张三', age: 20 }
以上代码中,使用解构赋值将gender属性赋值给变量gender,并将其余属性赋值给newObj,从而达到删除gender属性的目的。
2. Rest参数和扩展操作符
在ES6中,“...”还有两个其他的用途:Rest参数和扩展操作符。ES9中并未对其进行修改,以下是它们的详细解释和示例代码。
2.1 Rest参数
Rest参数的作用是将函数的所有参数收集到一个数组中。在函数中,使用三个点“...”后跟一个变量名即可实现Rest参数的效果。
function sum(...objs) { let result = 0 for(let i = 0; i < objs.length; i++) { result += objs[i] } return result } console.log(sum(1, 2, 3)) //输出 6 console.log(sum(2, 4, 6, 8)) //输出 20
以上代码中,定义了一个sum函数,可以接受任意数量的参数,并将其相加返回结果。
2.2 扩展操作符
扩展操作符的作用与Rest参数相反,它可以将一个数组展开为多个值。在数组前使用三个点“...”即可实现扩展操作符的效果。
const nums = [1, 2, 3, 4, 5] console.log(...nums) //输出 1 2 3 4 5
以上代码中,使用扩展操作符将nums数组展开为多个值,并直接输出到控制台。
总结
ES9中的新对象语法包括对象展开语法、Rest参数和扩展操作符。它们可以帮助开发者快速操作复杂对象、收集参数和展开数组。熟练掌握这些语法可以有助于提高代码效率和可读性。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65a3db15add4f0e0ffc085e6