初探 CoffeeScript
上周末我去參加了Java開發者大會討論了幾個非常有意思的話題。有名演講者談到了Underscore,當時他使用的演示都是基于CoffeeScript完成的。我以前與CoffeeScript這玩意有過一面之緣,但經過他這次講解后我打算重新再好好研究一下。如果你曾經在瀏覽器上使用過JavaScript 或者再服務端用過 Nodejs。那么你上手CoffeeScript就相當簡單了。
請記住你根本不需要使用 CoffeeScript,如果你本身就喜歡JavaScript那么你當然可以繼續使用JavaScript。而這篇文章的目的是向你們介紹CoffeeScript帶來的幾點好處。
CoffeeScript應用程序是以JavaScript應用的方式的運行的。在CoffeeScript程序被啟動前,它被轉換成對等的JavaScript應用。所以說白了,真正運行的程序實質上依然是JavaScript,只不過是利用了CoffeeScript的諸多好處而已。
幾個有意思的地方:
1, 如果你對Python比較熟悉的話,那么一開始你絕對會喜歡CoffeeScript,因為CoffeeScript的語法也是使用分號結束符與大括號代碼塊形式的。
2, return 表達式不需要 "return" 關鍵字因為最后一句就代表返回的信息。雖然你也可以使用return關鍵字,但壓根就沒人這么做。
3, 當你創建一個新變量時,該變量被定義為局部變量,這就意味著我們不可能隨意創建一個全局變量。所以一開始請小心地分配好全局變量。
CoffeeScript有一點我非常喜歡,就是用"or"關鍵字代替||符號,同理用"and"關鍵字代替&&
下面是一個CoffeeScript的簡單范例:
value1 = true value2 = true if value1 and value2 alert true else alert false
這段代碼如果翻譯成JavaScript,就是:
value1 = true; value2 = true; if (value1 && value2) { alert(true); } else { alert(false); }
比如我想創建一個簡單方法接受一個參數然后回一句"Hello":
sayHello = (name) -> alert "Hello #{name}" sayHello 'Chad'
對應的JavaScript代碼就是:
var sayHello; sayHello = function(name) { return alert("Hello " + name); }; sayHello('Chad');
好了,下面讓我們創建一個方法,接受兩個參數,其中一個參數具有默認值:
sayHello = (name, greeting = "Hello") -> alert "#{greeting} #{name}!" sayHello 'Chad', 'Bonjour' sayHello 'Chad'
看到沒,我調用此方法兩次,第一次我提供了第二個方法參數,而第二次我沒有寫第二個參數(那么第二個參數實質就是方法定義的默認值)。所以第一次返回的結果是 Bonjour Chad,而第二次是 Hello Chad。
接著看看對應的 JavaScript 代碼:
var sayHello; sayHello = function(name, greeting) { if (greeting == null) { greeting = "Hello"; } alert(greeting + " " + name + "!"); }; sayHello('Chad', 'Bonjour'); sayHello('Chad');
下面來看看 CoffeeScript 提供的自動 return 功能:
positiveOrNegative = (value) -> if value > 0 "Positive" else "Negative" alert positiveOrNegative 123 alert positiveOrNegative -123
對應的 JavaScript:
var positiveOrNegative; positiveOrNegative = function(value) { if (value > 0) { return "Positive"; } else { return "Negative"; } }; alert(positiveOrNegative(123)); alert(positiveOrNegative(-123));
展望未來...
你能從這里找到有關于 CoffeeScript 技術的一切。同時現在你也能從市面上買到這兩本專門講解 CoffeeScript 的書籍。
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!