菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

React ES6 解构赋值


解构赋值

为了说明解构赋值,我们将做一个三明治。你做三明治时会把冰箱里所有的东西都拿出来吗?不,你只会拿出你想用在三明治上的食材。

解构赋值就是这么回事。我们可能正在使用一个数组或对象,但我们只需要其中的一些元素。

解构赋值可以轻松地提取出我们需要的元素。


解构数组

这是将数组元素赋给变量的旧方法

示例

之前

const vehicles = ['mustang', 'f-150', 'expedition'];

// old way
const car = vehicles[0];
const truck = vehicles[1];
const suv = vehicles[2];

这是将数组元素赋给变量的新方法

示例

使用解构赋值

const vehicles = ['mustang', 'f-150', 'expedition'];

const [car, truck, suv] = vehicles;

解构数组时,声明变量的顺序很重要。

如果我们只需要汽车和 SUV,可以简单地省略卡车,但要保留逗号

const vehicles = ['mustang', 'f-150', 'expedition'];

const [car,, suv] = vehicles;

当函数返回一个数组时,解构赋值就派上用场了

示例

function calculate(a, b) {
  const add = a + b;
  const subtract = a - b;
  const multiply = a * b;
  const divide = a / b;

  return [add, subtract, multiply, divide];
}

const [add, subtract, multiply, divide] = calculate(4, 7);

自己动手试一试 »


w3schools CERTIFIED . 2022

获得认证!

完成 React 模块,完成练习,参加考试,并获得 w3schools 认证!

$95 注册

解构对象

这是在函数中使用对象的旧方法

示例

之前

const vehicleOne = {
  brand: 'Ford',
  model: 'Mustang',
  type: 'car',
  year: 2021, 
  color: 'red'
}

myVehicle(vehicleOne);

// old way
function myVehicle(vehicle) {
  const message = 'My ' + vehicle.type + ' is a ' + vehicle.color + ' ' + vehicle.brand + ' ' + vehicle.model + '.';
}

这是在函数中使用对象的新方法

示例

使用解构赋值

const vehicleOne = {
  brand: 'Ford',
  model: 'Mustang',
  type: 'car',
  year: 2021, 
  color: 'red'
}

myVehicle(vehicleOne);

function myVehicle({type, color, brand, model}) {
  const message = 'My ' + type + ' is a ' + color + ' ' + brand + ' ' + model + '.';
}

自己动手试一试 »

请注意,对象的属性不必按特定顺序声明。

通过引用嵌套对象,然后使用冒号和花括号再次解构嵌套对象中的所需元素,我们可以甚至对深度嵌套的对象进行解构。

示例

const vehicleOne = {
  brand: 'Ford',
  model: 'Mustang',
  type: 'car',
  year: 2021, 
  color: 'red',
  registration: {
    city: 'Houston',
    state: 'Texas',
    country: 'USA'
  }
}

myVehicle(vehicleOne)

function myVehicle({ model, registration: { state } }) {
  const message = 'My ' + model + ' is registered in ' + state + '.';
}

自己动手试一试 »



×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持