2011年6月4日 星期六

Javascript 語法蜜糖 CoffeeScript

摘譯 CoffeeScript 維基百科:

CoffeeScript 是用 ruby 寫的一種 Javascript 程式碼產生器。其中採用了 Ruby 與 Python
(比如 indent 取代大括號) 兩種程式語言的特性來簡化撰寫 Javascript 的語法,另外也
增加陣列轉換 (Array Comprehension)與正規表示(Pattern Matching) 的擴充語法。

使用 CoffeeScript 的好處是可以用更簡潔的程式碼,達到原本用 Javascript 寫出的
同樣功能,而不影響到執行期效能。Javascript 之父 Brendan Eich 表示 CoffeeScript
也影響到他對 Javascript 語言將來的發展規劃。

Ruby on Rails 預計在 3.1 版將會支援 CoffeeScript 。

CoffeeScript 可以在瀏灠器直接執行或透過 Node.js (Server side 執行的 Javascript 程式
,event driven I/O framework for V8 Javascript engie on Unix)執行。

 讀完維基百科後,可以繼續看 PragProg Magazine 的 CoffeeScript 五項改進
一、變數宣告依所在的 namespace 為全域或區域變數,不再因為宣告變數忘記加
var 而覆蓋已經宣告過的全域變數。CoffeeScript 也會將變數限定在單一檔案的匿名
函式中。

二、ajax call 中的 this 在 CoffeeScript 中同樣指到目前 context 的物件,this 關鍵字
也可以用符號 @ 代替

三、CoffeeScript 繼承 ruby 慣例將函式最後的 expression 自動當函式返回值,也可
以在變數賦值的語法 a = 後加上 '->' 自動將 a 由變數改為函式

四、CoffeeScript 在迴圈中使用 do 關鍵字,可以更容易為迴圈加入需取值的函式。

五、提供語法蜜糖,讓程式碼更簡潔

另外據說現在 GitHub 的開放源碼存量已經超過 SourceForge,再來是 Google Code 
第四是微軟的 CodePlex,另外還有支援 Mercurial distributed version control system (DVCS)
BitBucket 可以參考。

CoffeeScript 官網
CoffeeScript@Gihub 
A CoffeeScript Intervension