在javascript中,我們調用對象變量的某個方法之前,經常會向下面的代碼一樣判斷該對象是否存在,該變量定義過並且值不是null的話就調用相應的方法。
if (typeof p !== "undefined" && p !== null) {
p.sayHello();
}
到了CoffeeScript中,上面的代碼直接被簡化成:
p?.sayHello()
意思就是變量p定義且被實例化過,則調用“sayHello”方法,否則就不調用。
一個“?”號代替了對應的javascript代碼的條件判斷部分,即能提高效率又能便於讀懂而且工作的很好。
這樣的語法糖何樂而不爲呢!
^-^