* [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);
~~~
- 關于
- 1. 類型
- 2. 引用
- 3. 對象
- 4. 數組
- 5. 解構
- 6. 字符串
- 7. 函數
- 8. 箭頭函數
- 9. 構造函數
- 10. 模塊
- 11. Iterators & Generators
- 12. 屬性
- 13. 變量
- 14. 提升
- 15. 比較運算符 & 等號
- 16. 代碼塊
- 17. 注釋
- 18. 空白
- 19. 逗號
- 20. 分號
- 21. 類型轉換
- 22. 命名規則
- 23. 存取器
- 24. 事件
- 25. jQuery
- 26. ECMAScript 5 兼容性
- 27. ECMAScript 6 編碼規范
- 28. 測試
- 29. 性能
- 30. 資源
- 31. 使用人群
- 32. 翻譯
- 33. JavaScript 編碼規范說明
- 34. 一起來討論Javascript
- 35. Contributors
- 36. License