CoffeeScript简介 <一>
介紹
coffeeScript是一種輕量級的編程語言,可以用編譯器生成原生javascript代碼。它簡化了許多javascript繁瑣的方式,可以讓你用簡單的方式直接使用一行程序代表javascript多行代碼,而且編譯后還會根據(jù)最佳實踐優(yōu)化javascript代碼。它的語法像是python和ruby的混合,不用括號控制排版,直接用縮進表示。建議初學(xué)者一邊寫coffeescript,一邊對照生成的javascript代碼,可以很快的了解coffeescript的意義。 瀏覽器最后執(zhí)行的還是編譯后的javascript代碼。
語法
去掉多余的符號&&使用縮進
首先來看一個 coffeescript demo:
if elvis
alert "oh no"
elvis = 3
編譯成 javascript 代碼之后:
if (elvis){
alert("oh no");
elvis = 3;
}
看上面的coffee代碼和js代碼,js中的圓括號被去掉了,畫括號也去掉了,分號;也去掉了。
再比如:
if elvis
alert "oh no"
elvis = 3
編譯成 javascript 代碼之后:
if (elvis){
alert("oh no");
}
elvis = 3;
最后一句代碼縮進方式不同,導(dǎo)致最終編譯的js也不一樣,coffee就是根據(jù)tab縮進來進行排版的。
函數(shù)
聲明函數(shù)時coffee默認會把最后一行作為函數(shù)的返回值,可以不加return,如果返回值為空,可以加上return。
例如:
fill = (x) ->
x * x
編譯后的js為:
var fill;
fill = function(x){
return x * x;
}
字符串占位符
這是coffe中最愛的一點,因為javascript中沒有類似c#中的string.Format()方法,拼接很長的字符串時代碼看起來可讀性很差。
# 這是cofee的注釋
eat = (x) -> alert "I eat #{x}!"
eat food for food in ['toast', 'cheese', 'wine']
編譯后的js代碼:
var eat, food, _i, _len, _ref;
eat = function(x) {
return alert("I eat " + x + "!");
};
_ref = ['toast', 'cheese', 'wine'];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
food = _ref[_i];
eat(food);
}
這里可以看出來使用coffee有多省事了吧。
區(qū)間使用
coffee有一個像java一樣的...的語法:
# ... 表示區(qū)間
numbers = [0,1,2,3,4,5,6,7,8,9]
copy = numbers[0...numbers.length]
middle = numbers[3...6]
關(guān)于 == 和 != 之間的比較
在coffee中沒有==,一律使用===,所以也就沒有!=,只有!==。javascript中==和===的區(qū)別是:
三等操作符
===用來判斷兩個變量是否相等,相等的前提是同樣的類型和同樣的值。
具體請參考我的另一篇文章。
對象判空
coffee可以使用?來判斷參數(shù)是否已定義或是null值,例如:
if elvis?
alert "oh no"
elvis = 3
編譯后的js代碼:
var elvis;
if (typeof elvis !== "undefined" && elvis !== null) {
alert("oh no");
elvis = 3;
}
總結(jié)
以上是生活随笔為你收集整理的CoffeeScript简介 <一>的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用js监控分辨率调整背景图片宽度_如何使
- 下一篇: nohup命令_后台任务与nohup命令