H5W3
当前位置:H5W3 > 其他技术问题 > 正文

【前端问题精选】这种写法是用了解构赋值吗?

const getFullName = ({ firstName, lastName }) => {
  return `${firstName} ${lastName}`;
}

getFullName({
  firstName: "si",
  lastName: "Li"
})

函数定义的参数和函数体里面的参数是简写的吗?完整的写法是什么样的呢?
({ firstName, lastName })
函数体使用对象参数不应该是obj.firstName之类的吗?

回答:

是解构赋值,相当于从形参里解构出firstName, lastName。 { firstName, lastName }相当于形参

回答:

是的,去看下es6吧

回答:

用到了解构赋值以及模板字符串语法。

回答:

({ firstName, lastName })是 ${firstName} ${lastName}是模板字符串
http://es6.ruanyifeng.com/#do…

回答:

MDN 上对 JavaScript 的解构有详情说明,如果你不习惯看英文,可以在右上角 Language 处切换到中文版阅读。

其中在一半多一点的位置,讲到了对函数参数的解构

简单可以理解为,对函数参数赋值采用与对变量赋值同样的解构方式,比如定义并解构变量时

const [a, b, c] = someArray;
const { firstName, lastName } = userInfo;

相应的,定义和解析参数就可以

function fn1([a, b, c]) { ... }
// fn1(someArray)

function fn2({ firstName, lastName }) { ... }
// fn2(userInfo)

在普通解构赋值语句中可用的特性,也函数参数解析中也可用,比如默认值等。

本文地址:H5W3 » 【前端问题精选】这种写法是用了解构赋值吗?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址