ECMAScript 2018(ES9)中新对象语法详解

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)

输出结果为:

1.2 删除属性

对象展开语法不仅可以合并属性,还可以删除不需要的属性。例如,我们想从person对象中删除“gender”属性,可以这么写:

const { gender, ...newObj } = person

console.log(newObj)

输出结果为:

以上代码中,使用解构赋值将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


纠错反馈