送給 ES6 開發者的7個 hack
關注原來的 JavaScript hacks,上面有一些新的好東西。2018 使用 JavaScript 寫程式碼真的又變得有意思了!
Hack #1 — 交換變數
使用陣列結構來交換值
let a = 'world', b = 'hello' [a, b] = [b, a] console.log(a) // -> hello console.log(b) // -> world // 是的,很神奇
Hack #2 — 使用解構的 Async/Await
再說一遍,陣列結構真的很棒。通過和 async/await 以及 promise 結合可以讓複雜的流程變得簡單。
const [user, account] = await Promise.all([ fetch('/user'), fetch('/account') ])
Hack #3 — 除錯
對於那些喜歡使用 console.logs 來除錯的人來說,現在有一些特別酷的(並且我也聽說過 console.table):
const a = 5, b = 6, c = 7 console.log({ a, b, c }) // 輸出優雅的物件: // { // a: 5, // b: 6, // c: 7 // }
Hack #4 — 一行搞定一切
對於陣列操作,語法可以非常緊湊
// 尋找最大值 const max = (arr) => Math.max(...arr); max([123, 321, 32]) // outputs: 321 // 對陣列求和 const sum = (arr) => arr.reduce((a, b) => (a + b), 0) sum([1, 2, 3, 4]) // output: 10
Hack #5 — 陣列拼接
擴充操作符可以用來代替 concat:
const one = ['a', 'b', 'c'] const two = ['d', 'e', 'f'] const three = ['g', 'h', 'i'] // 老方法 #1 const result = one.concat(two, three) // 老方法 #2 const result = [].concat(one, two, three) // 新方法 const result = [...one, ...two, ...three]
Hack #6 — 克隆
輕鬆克隆陣列和物件:
const obj = { ...oldObj } const arr = [ ...oldArr ]
注意:這會產生一個淺克隆。
Hack #7 — 命名引數
通過結構讓函式以及函式函式呼叫更具有可讀性:
const getStuffNotBad = (id, force, verbose) => { ...do stuff } const getStuffAwesome = ({ id, name, force, verbose }) => { ...do stuff } // 在程式碼的其它某個地方... 到底什麼是 true, true? getStuffNotBad(150, true, true) // 在程式碼的其他某個地方.. I ❤ JS!!! getStuffAwesome({ id: 150, force: true, verbose: true })
已經全部知道了?
你是一個真正的黑客,讓我們繼續在 Twitter上的談話你還可以看看我的 Torii 教學,我們讓“SaaS 頭痛”消失。
譯者:neal1991
相關文章
- 7 個給新手 Java 開發者的提示Java
- 給新手 Java 開發者的 7 點提示Java
- 三個歎為觀止的ES6 Array hack
- 給PHP開發者的建議PHP
- 開發者談切入遊戲開發市場的7個選擇視角遊戲開發
- Slack是用Hack語言開發
- 一份送給Java初學者的指南Java
- [譯] 寫給前端開發者的 GraphQL 指南前端
- WWDC 2018:寫給 OpenGL 開發者們的 Metal 開發指南
- 10個超厲害GitHub Repos獻給所有的開發者Github
- 微信程式開發系列教程(二)使用JavaScript給微信使用者傳送訊息JavaScript
- 給Android開發者的Flutter指南 (下) [翻譯]AndroidFlutter
- 給Android開發者的Flutter指南 (上) [翻譯]AndroidFlutter
- 寫給.NET開發者的Python教程(一):引言Python
- 開發者以經典案例談7個典型的BOSS戰役形式
- 給Android開發者Flutter上手指南AndroidFlutter
- 給Java開發初學者的10個學習建議,助你學習事半功倍!Java
- 給Java開發初學者的10個學習建議,助你學習事半功倍Java
- 開學送給她的禮物(Python實現)Python
- [譯] 寫給 React 開發者的自定義元素指南React
- 寫給go開發者的gRPC教程-通訊模式GoRPC模式
- 送給 18 歲的自己
- 《Debug Hacks》-看了21個Hack
- 什麼是hack?css的hack有哪些?CSS
- 寫給 Android 開發者的 Gradle 系列(一)基本姿勢AndroidGradle
- 寫給 Android 開發者的 Gradle 系列(三)撰寫 pluginAndroidGradlePlugin
- 寫給 Android 開發者的 Gradle 系列(二)撰寫 taskAndroidGradle
- 寫給國內遊戲開發者的出海小攻略遊戲開發
- 寫給go開發者的gRPC教程-錯誤處理GoRPC
- 奈學開發者社群分享:Java - 設計模式的7個設計原則Java設計模式
- 開發者談設計遊戲時需要注意的7個關鍵點遊戲
- 2021年了,Python開發者不容錯過的7個VS Code擴充套件Python套件
- 送給寫小程式的你。
- 【譯】2019年給牛掰的 JavaScript 開發者的9條技巧JavaScript
- 【推薦】7個超好用的Python開發工具!Python
- Serverless 應用開發的 7 個經驗心得Server
- [譯]7個ES6程式設計小技巧程式設計
- 敏捷個人-做好一個開發者敏捷