初探 CoffeeScript

fmms 12年前發布 | 43K 次閱讀 JavaScript開發 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!