既然是为了简便为什么设计需要去掉这种明显更简单的写法,而非要用if ... then ... else ...
来表示呢?
簡單既可以是書寫簡單,也可以是思路簡單。
比如 foo?.bar?()
你要自己寫,思路就會被打斷,因爲你要被迫考慮具體實現的問題,注意力從全局移開了。
即便是書寫簡單的寫法,也不一定思路簡單。foo?true:false
雖然看上去簡單,但要 nest 就不得不考慮優先級的問題。
给大家看一个句式:
_p = if url.indexOf '?' is -1 then '?' else '&'
结果是
var _p;
_p = url.indexOf('?' === -1) ? '?' : '&';
非得
_p = if url.indexOf('?') is -1 then '?' else '&'
别告诉我前面的写法不对……
在Coffee的GitHub issues里可以找到很多人跟你问一样的问题:https://github.com/jashkenas/coffeescript/search?q=ternary+operator&type=Issues&utf8=%E2%9C%93
只能说Coffee里就是不支持三元运算。