const getList = ([x, ...y]) => [x, y]
const getUser = user => {name: user.name, age: user.age}
const list = [1, 2, 3, 4]
const user = {name: 'ouyang', age: 27}
console.log(getList(list)) // [1, [2, 3, 4]]
console.log(getUser(user)) // undefined
解析:
1、getList
接受参数 list
时会对应立即解构赋值,等同于 [x, ...y] = [1, 2, 3, 4]
,所以 x = 1
, y = [2, 3, 4]
故结果返回 [1, [2, 3, 4]]
2、getUser
对于箭头函数, 返回一个值是不用写花括号的 {}
,如上面 getList 返回一个数组,并没有写花括号,但是,如果要返回的为一个对象,返回的值必须用 ()
包裹起来,否则不会返回任何值,为 undefined
。如正常返回,如下:
const getUser = user => ({name: user.name, age: user.age})
PS:此题出自<<高级前端面试>>小程序,可前往学习。