W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
CoffeeScript使用來自ruby的省略語法,讓控制流變得很緊湊,也引進了unless,not,then等語法糖式的關鍵字
result = if not true then "false"
result = unless true then "false"
CoffeeScript中非常好的一點,就是直接取消了js中的==判斷,改成全部用===進行嚴格比較,js中的==會做大量詭異的類型轉(zhuǎn)換,很多情況下是bug的來源
if "1" == 1
alert("equal")
else
alert("not equal")
在使用if來進行空值的判斷時,js有時會讓人困擾,因為""和0都會被轉(zhuǎn)換成false,Coffee提供了?操作符解決這個問題,她只有在變量為null或undefined時才為false
""? #true
null? #false
也可以用常見的類似ruby中||=的方法,判斷賦值,此外還可以用and,or,is關鍵字代替&&,||,==
hash or= {}
hash ?= {}
經(jīng)常有當某個屬性存在的時候,才會調(diào)用屬性上的方法的情況,這時候也可以用?
knight.hasSword()?.poke()
只有當hasSword()返回對象不為空時,才會調(diào)用poke方法,以下是編譯的js代碼
var _ref;
if ((_ref = knight.hasSword()) != null) {
_ref.poke();
}
另一種情況是當poke方法存在時才調(diào)用
knight.hasSword().poke?()
對應的js代碼
var _base;
if (typeof (_base = knight.hasSword()).poke === "function") {
_base.poke();
}
switch case語句也有了一些語法糖,并且會默認加上break
switch day
when "Sun" then go relax
when "Sat" then go dancing
else go work
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: