React的野望


看到最近React在Github上已經超過5萬個星,這個趨勢應該是銳不可擋了,未來的React發展是如何,相信有很多使用者非常關心,以下的內容是從最近的在網路上看到的文章與影片來看幾個React未來的發展。

閱讀全文

Flow靜態資料類型的檢查工具,10分鐘快速入門


Flow是一種靜態資料類型的輔助檢查工具,Flow的功能是讓現有的JavaScript語法可以作預先資料類型的定義,在開發過程中進行自動檢查,當然在最後編譯時,可以用工具來移除這些標記。在這之前,你可能有聽過TypeScript程式語言,它其中也有靜態資料類型的特性,常常會拿來與Flow作比較。不過,相較於TypeScript是另外制作一套超集(superset)程式語言,最後再經過編譯為JavaScript程式碼來執行。Flow走的則是非強制性與非侵入式的路線,提供了另一種在現有JavaScript應用上的選擇。總結來說,這兩種方式的目的是相似的,各自有優點也有不足之處,不過青菜蘿蔔各有所好,要選擇哪一種方式就看你的選擇。

閱讀全文

Promise教學 - Promises/A+標準定義


本內容是從免費電子書從Promise開始的JavaScript異步生活中轉貼過來,有興趣可以前往閱讀。


原生的ES6 Promise是符合Promises/A+標準的

所謂的Promises/A+標準,其實就是個幾千字的一頁網頁而已,裡面的說明與用語並不會太難理解。雖然ES6標準中也有自己的Promise物件標準章節,但因為裡面涉及很多實作技術說明,明顯地用字遣詞艱澀許多,所以在這裡就不多加討論。以下使用Promises/A+標準作為一個開始,來解說Promise的標準裡有什麼內容。這一章僅有定義部份,之後的解說也是會依照Promises/A+標準中的規則來說明。

閱讀全文

Promise教學 - 基本概念


本內容是從免費電子書從Promise開始的JavaScript異步生活中轉貼過來,有興趣可以前往閱讀。


異步Callback(回調)

Promise中的所有回調函式,都是異步執行的

我需要再次強調,並非所有的使用callbacks(回調)函式的API都是異步執行的。在JavaScript中,除了DOM事件處理中的回調函式9成9都是異步執行的,語言內建API中使用的回調函式不一定是異步執行的,也有同步執行的例如Array.forEach,要讓開發者自訂的callbacks(回調)的執行轉變為異步,有以下幾種方式:

閱讀全文

Promise教學 - 前言


本內容是從免費電子書從Promise開始的JavaScript異步生活中轉貼過來,有興趣可以前往閱讀。


一個promise代表一個異步運算的最終結果 ~譯自Promises/A+

Promise語法結構提供了更多的程式設計上的可能性,它是一個經過長時間實戰的結構,在許多知名的函式庫或框架中很早就有見到Promise物件的身影,例如Dojo、jQuery、YUI、 Ember、Angular、WinJS、Q等等,之後Promises/A+社區則提供了統一的標準。在最近新一代的ES6標準中將會包含了Promise的實作,提供原生的語言內建支援,這將是個開始,往後會有愈來愈多API以此為基礎架構在其上。

閱讀全文

this


本文章摘錄自從ES6開始的JavaScript學習生活一書中的內容。有興趣可以前往觀看。

在其他以類別為基礎的程式語言中,this指的是目前使用類別進行實體化的物件。而JavaScript語言中因為沒有類別這種東西,設計上也不一樣,this的指向的是目前呼叫函式或方法的擁有者(owner)物件,也就是說它與函式如何被調用有關,雖然是同一函式的呼叫,因為不同的物件呼叫,也有可能是不同的this值。

閱讀全文

Closure 閉包


本文章摘錄自從ES6開始的JavaScript學習生活一書中的內容。有興趣可以前往觀看。

閉包定義

Closure這個字詞是由Close與字尾-ure所構成,-ure有"動作"、"進行"或"結果"的意思,如果close是關閉的意思,clousure就是關閉的結果或動作,它可以作為名詞或動詞使用,中文有"封閉"、"終止"或"結束"的意思。

由於JavaScript語言中的函式是頭等函式(first-class function)的設計,代表函式在語言中的應用上享有與一般原始資料類型的值同等地位,函式可以傳入其他函式作為傳入參數,可以當作另一個函式的回傳值,也可以指定為一個變數的值,或是儲存在資料結構中(例如陣列或物件),在語言中甚至是有自己獨有的資料類型(typeof一個函式回傳值是'function')。

閉包是一種資料結構,包含函式以及記住函式被建立時當下環境。

閱讀全文