博客列表 >解构赋值及其在函数传参中的应用

解构赋值及其在函数传参中的应用

zg的php学习
zg的php学习原创
2021年10月03日 17:08:01859浏览

解构赋值

将一个多值变量(数组、对象)的值分解赋值给各个单值变量
常规用法:

  1. let name, sex, age;
  2. //数组
  3. let arr = ["张三", "male", 32];
  4. name = arr[0];
  5. sex = arr[1];
  6. age = arr[2];
  7. //对象
  8. let user = { name: "张三", sex: "male", age: 32 };
  9. name = user.name;
  10. sex = user.sex;
  11. age = user.age;

解构用法:

  1. //数组解构
  2. [name, sex, age] = ["张三", "male", 32];
  3. //对象解构
  4. ({ name, sex, age } = { name: "张三", sex: "male", age: 32 });

解构出现参数不足或过多时的解决方法,以数组为例(对象同样)

  1. //参数不足时,可以添加默认值
  2. [name, sex, age = 18] = ["张三", "male"];
  3. //参数过多时,可以使用 “...” 合并参数
  4. [name, sex, age, ...args] = ["张三", "male", 32, "admin@php.cn",32]

注意点:

  • 解构时左右两边的类型必须一致。
  • 对象解构时,因为左边不能直接使用{…},所以当没有 let 关键字时,可以用小括号将整条语句包住,让它成为一个表达式即可。

解构赋值在做为函数参数时的应用

数组或对象做为函数参数传递时的常规用法,以对象为例:

  1. //常规用法
  2. let obj = { name: "张三", sex: "male", age: 32 };
  3. let f = (o) => console.log(o.name, o.sex, o.age);
  4. f(obj);
  1. //解构赋值法
  2. let obj = { name: "张三", sex: "male", age: 32 };
  3. let f = ({ name, sex, age }) => console.log(name, sex, age);
  4. f(obj);

当参数不足或过多时,同样可以使用添加默认值和”…”合并参数来解决。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议