5. 解构

最后更新于:2022-04-01 21:12:09

* [5.1](https://github.com/yuche/javascript#5.1) 使用解构存取和使用多属性对象。 > 为什么?因为解构能减少临时引用属性。 ~~~ // bad function getFullName(user) { const firstName = user.firstName; const lastName = user.lastName; return `${firstName} ${lastName}`; } // good function getFullName(obj) { const { firstName, lastName } = obj; return `${firstName} ${lastName}`; } // best function getFullName({ firstName, lastName }) { return `${firstName} ${lastName}`; } ~~~ * [5.2](https://github.com/yuche/javascript#5.2) 对数组使用解构赋值。 ~~~ const arr = [1, 2, 3, 4]; // bad const first = arr[0]; const second = arr[1]; // good const [first, second] = arr; ~~~ * [5.3](https://github.com/yuche/javascript#5.3) 需要回传多个值时,使用对象解构,而不是数组解构。 > 为什么?增加属性或者改变排序不会改变调用时的位置。 ~~~ // bad function processInput(input) { // then a miracle occurs return [left, right, top, bottom]; } // 调用时需要考虑回调数据的顺序。 const [left, __, top] = processInput(input); // good function processInput(input) { // then a miracle occurs return { left, right, top, bottom }; } // 调用时只选择需要的数据 const { left, right } = processInput(input); ~~~
';