iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 1
0
自我挑戰組

Good Morning, JS functional Programing.系列 第 1

Good Morning, JS (Day 0)

Kyle Simpson 是 You don't know JS 系列的作者,本身也是開源社群 JS 的熱情傳教士,本系列文章以 Kyle 的教學材料,順著 Kyle 的思路,重新認識,深入了解 JavaScript。


Office Hours with Kyle Simpson, Author of "You Don't Know JavaScript" Book Series

這部影片是 Kyle 的線上解題,來自教學網站 Frontend Masters, 該平臺有 Kyle 的許多影音教學,截至 11/30 已累積超過 300,000 小時的觀看時數

內容分享 (PART 1)

影片涵蓋許多 Kyle 對 JavaScript 深入理解後的獨特見地,以及如何學習這個語言的正確 MindSet,推薦有興趣的朋友。以下是我看完的一些整理

Q1. 字串操作: concat() method vs. the + operator

  • String are immutable
    字串操作實際上不會改變該字串,就算叫 .concat(),其實底層只是把原值當 input,而輸出新值

  • In general, function call tend to take up more processing time (microseconds)
    但實際上有時候會跟我們的直覺相反,跟 JS 的 runtime 環境實作有關,常會發生: 如果一個 pattern 如果使用者較多,通常會特別對這些 pattern 進行優化

  • 正確 MindSet
    很多人看到這邊就直接下結論 好吧!把全部的字串連接都改成 + , Kyle 指出以下幾點提醒

    • line 4 與 line 6 在不同的執行環境效能可能不同
    • 效能測試比較單行,Not really a good idea.
    • 應該比較的是 module 和 module 之間,比如說同一套登入流程
      A寫法 v.s. B寫法
  • more base on syntax, more devlarative

var s1 = "Good Morning"
var s2 = "JavaScript"

var s = `${s1} ${s2}`
  • trade-off 效能 v.s 易讀性
    隨著專案進行,code 一定不只這幾行,除了效能更要考慮易讀性,以及兩者之間的取捨

下一篇
Good Morning, JS (Day 1)
系列文
Good Morning, JS functional Programing.31

2 則留言

0
oliver
iT邦新手 5 級 ‧ 2017-12-20 20:47:00

長知識 讚讚

0
Chris
iT邦新手 5 級 ‧ 2018-01-07 22:29:13

所以?誰比較好?XD

LeeBoy iT邦新手 4 級 ‧ 2018-01-17 14:22:12 檢舉

看情況,基本上看得懂就好,因為這兩句對整個程式影響微乎其微

我要留言

立即登入留言