其實就是把JS好用的地方提煉出來了,再加點(diǎn)語法糖!
除非你很熟悉JS,不然COFFEE的執(zhí)行效率大概會比手寫的高,而且優(yōu)雅
但是如果你真的很熟悉JS的話,你手寫JS出來的代碼應(yīng)該也是跟coffee編譯出來的沒差
所以選COFFEE還能省鍵盤。。
先來看下對比代碼(左為CoffeeScript):
CoffeeScript的吸引力:
1、提供一種比較簡單的語法,減少了樣板代碼,諸如括號和逗號;
2、使用空格作為一種組織代碼塊的方法;
3、提供擁有表達(dá)函數(shù)的簡單語法;
4、提供基于類的繼承(可選項,但是在進(jìn)行應(yīng)用程序開發(fā)時非常有用)
先決條件:
CoffeeScript使用Nodejs的包管理程序,作為Node.js的一個包進(jìn)行分布。
CoffeeScript必須被編譯,其編譯器實際上就是使用CoffeeScript編寫的,所以,需要一個JavaScript運(yùn)行時來完成其編譯。
安裝方法:
sudo npm install -g coffee-script
安裝成功后,我們應(yīng)該能夠在命令行中找到 coffee 命令了。coffee -v 我這里看到的是 1.6.0。使用 coffee 命令,可以將 .coffee 文件編譯成 js 文件。使用 coffeescript 的格式來寫 javascript 據(jù)說可以節(jié)省三分之二的代碼量哦。
基本用法:
-c,--compile 將.coffee編譯為.js文件
-w,--watch 監(jiān)控文件的變化,并輸出監(jiān)控的結(jié)果
-o,--output [DIR] 將編譯的結(jié)果文件輸出到指定目錄
-p,--print 將編譯結(jié)果
-l,--lint 如果安裝了 jsl (javascript lint)的話,使用lint檢查代碼
-s,--stdio 將其它程序的輸出作為coffee的標(biāo)準(zhǔn)輸入,并且獲得JavaScript的標(biāo)準(zhǔn)輸出。
-e,--eval 命令行的形式
安裝:
你是否曾希望能夠通過命令行來運(yùn)行JavaScript?反正我是沒有,不過CoffeeScript可能會改變現(xiàn)狀。有了Node.js,你可以通過命令行來運(yùn)行JavaScript,或是把JavaScript作為執(zhí)行腳本的組成部分來運(yùn)行。Node.js的這一主要功能允許在命令行上執(zhí)行CoffeeScript代碼,其提供了(使用CoffeeScript編寫的)CoffeeScript編譯器所需要的運(yùn)行時。
第一步是安裝Node.js,有幾種安裝選擇;你可以編譯源代碼,或是運(yùn)行可用于各種系統(tǒng)的安裝程序之一。通過命令行運(yùn)行node -v來確認(rèn)Node.js已經(jīng)安裝并且已位于路徑中。
Node.js給你帶來了一個額外的收獲:節(jié)點(diǎn)包管理器(NPM)。通過命令行運(yùn)行npm -v確認(rèn)NPM已經(jīng)安裝并已位于路徑中之后,就可以按照如下步驟來使用NPM安裝CoffeeScript了。
1. 通過命令行運(yùn)行npm install --global coffee-script。
--global標(biāo)記讓CoffeeScript可為全系統(tǒng)所用而不僅是為某個特定項目所用。
2. npm命令應(yīng)該輸出諸如/usr/bin/coffee -> /usr/lib/node_modules/coffee-script/bin/coffee一類的信息。
NPM在 /usr/bin中創(chuàng)建了一個快捷方式,所以現(xiàn)在coffee這一可執(zhí)行文件就處在正確的路徑中了,這是CoffeeScript的編譯器和解釋器。
3. 若要驗證coffee這一執(zhí)行文件已位于路徑中,通過命令行運(yùn)行coffee -v。
還剩最后一步來確認(rèn)CoffeeScript的環(huán)境已被正確設(shè)置。為了讓CoffeeScript對于任何啟動的Node.js進(jìn)程來說都是可用的,你需要把它加入到Node.js所謂的NODE_PATH中,在遇到未識別的函數(shù)時,Node.js會通過搜索NODE_PATH來獲取一些模塊(庫)。
就本文中的例子來說,主要是把Node.js用作CoffeeScript可執(zhí)行文件的運(yùn)行時。最容易的做法是簡單地把所有的NPM模塊都添加到NODE_PATH中,若要找出NPM模塊所處的位置,輸入 npm ls -g,你需要添加一個把NODE_PATH指向這一位置的環(huán)境變量。例如,如果npm ls -g的輸出是/usr/lib,則模塊位于/usr/lib/node_modules目錄下,若要設(shè)置一個NODE_PATH環(huán)境變量,運(yùn)行export NODE_PATH=/usr/lib/node_modules。
你可以通過把上面的命令放入到啟動腳本(比如說~/.bash_profile)中來進(jìn)一步簡化這些事情。若要驗證所做的修改,執(zhí)行Node來啟動一個Node.js外殼程序,然后輸入require('coffee-script'),Node.js外殼程序應(yīng)該就會載入CoffeeScript庫。如果執(zhí)行沒問題的話,CoffeeScript環(huán)境就是隨時可用的了?,F(xiàn)在你可以從編譯器開始,啟動CoffeeScript的探索之旅了。
編譯器
運(yùn)行CoffeeScript編譯器很容易,只要輸入coffee -c就可以了,該命令啟動了CoffeeScript的讀取-計算-輸出-循環(huán)(read-evaluate-print-loop,REPL)。若要執(zhí)行該編譯器,你需要把一個想要編譯CoffeScript文件傳給它。創(chuàng)建一個名為cup0.coffee的文件,把清單2中的內(nèi)容粘貼到該文件中。
清單2. Cup 0
for i in [0..5]
console.log "Hello #{i}"
你可能會猜想清單2中的這兩行代碼能干什么,清單3給出了運(yùn)行coffee cup0.coffee的輸出。
清單3. 運(yùn)行首個CoffeeScript
$ coffee cup0.coffee
Hello 0
Hello 1
Hello 2
Hello 3
Hello 4
Hello 5
為了對發(fā)生的事情有一個更加清晰的概念,試著運(yùn)行一下編譯器,輸入coffee -c cup0.coffee,該命令創(chuàng)建了一個名為cup0.js的文件,清單4給出了cup0.js的內(nèi)容。
CoffeeScript 1.9.3 發(fā)布,此版本主要有以下更新:
Bugfix for interpolation in the first key of an object literal in an implicit call.
Fixed broken error messages in the REPL, as well as a few minor bugs with the REPL.
Fixed source mappings for tokens at the beginning of lines when compiling with the --bareoption. This has the nice side effect of generating smaller source maPS.
Slight formatting improvement of compiled block comments.
Better error messages for on, off, yes and no.
您的評論需要經(jīng)過審核才能顯示
有用
有用
有用