複製鏈接
請複製以下鏈接發送給好友

CoffeeScript

鎖定
CoffeeScript是一套JavaScript的轉譯語言,創建者 Jeremy Ashkenas 戲稱它是- JavaScript 的不那麼鋪張的小兄弟。因為 CoffeeScript 會將類似 Ruby 語法的代碼編譯成 JavaScript,而且大部分結構都相似,但不同的是 CoffeeScript 擁有更嚴格的語法。
外文名
CoffeeScript
提交時間
2009 年 12 月 24 日
發佈時間
2010 年 12 月 24 日
性    質
JavaScript的轉譯語言

CoffeeScript歷史淵源

2009 年 12 月 24 日, CoffeeScript 版本 0.0.1 被提交.
2010 年 12 月 24 日, CoffeeScript 發佈 1.0.0 穩定版.
2015 年 9 月 3 日,CoffeeScript 發佈 1.10.0 穩定版 [1] 

CoffeeScript功能

語法:從 Lisp 系重生CoffeeScript打蛇打到七寸了. 它的最大功績, 就是將 JavaScript 硬綁的 C/Java 語法拋棄了; 改為採用類似 Ruby/Python 的語法. Ruby/Python 本來就是深受 Lisp 影響的, 和 JavaScript 算是同門師兄, 他們的語法經過了實踐考驗, 是更適合函數式+動態語言內核的.
Good Parts:CoffeeScript 只使用了 JavaScript 的 ”Good Parts(精粹)”, 拋棄了原來 JavaScript 晦澀的,容易出問題的那部分東西. 比如,全局變量聲明, with 等.
語法糖和 ECMAScript:CoffeeScript 提供了很多語法糖, 讓代碼更優雅可讀. 去主頁仔細看看 CoffeeScript 的語法清單, 就會發現邊邊角角到處是創新. 這讓編程語言真的成了開發者的朋友, 而不是機器的朋友.
CoffeeScript 還提供了一個機會, 讓你可以使用 ECMAScript 裏面的特性. 將來有個更多新特性, CoffeeScript 也有機會在瀏覽器支持之前實現它們. 程序員面對的是 CoffeeScript 的優雅接口, 它是程序員和JavaScript 之間的中間層, 髒活累活它都幹了.

CoffeeScript 歷史評價

CoffeeScript 構建在 JavaScript 上層, 這讓人聯想起 .Net 和 C#/F#/VB… , 以及 JVM 和 Java/JRuby/Scala…
在 JavaScript 上層做事情的, 不只 CoffeeScript, 還有很多其他的. 比如 Lua 就有通過 LLVM 轉換成JavaScript 的實現. 前段時間的 JavaScript PC 模擬器也證明了這種思路的威力.
也許 JavaScript 就是下一個 JVM, 上面會有最適用於各種場景的各種語言. 很多人盼望 JavaScript 成為未來的唯一語言, 看起來這是不切實際的幻想了.

CoffeeScript代碼展示

官方網站展示的代碼 [2]  :
#賦值:
number=42
opposite=true

#條件:
number=-42 if opposite

#函數:
square=(x)->x*x

#數組:
list=[1,2,3,4,5]

#對象:
math=
	root:Math.sqrt
	square:square
	cube:(x)->x*squarex

#Splats:
race=(winner,runners...)->
	print winner,runners

#存在性:
alert"I knew it!" if elvis?

#數組推導(comprehensions):
cubes=(math.cube num for num in list)































參考資料