表達式 (expr1) ? (expr2) : (expr3)
在 expr1 求值為 TRUE 時的值為 expr2,在 expr1 求值為 FALSE 時的值為 expr3。
============
普通用法
當你發現你經常用if else
代碼如下:
if(拜春哥 || 拜考試帝){
不掛科;
}else{
門門掛;
}
那么三元的表示法就是
代碼如下:
拜春哥 || 拜考試帝 ? 不掛科 : 門門掛
日常中經常會有這樣的 if else 判斷,特別是嵌套比較多的時候 用三元是比較和諧的,可以讓你的代碼看起來更加清爽,結構清晰。
通過不斷的變化,可以衍生出很多三元的用法。如下一段jquery代碼
flag ? $('body').addClass('hover') : $('body').removeClass('hover') ;
$('.item')[ flag ? 'addClass' : 'removeClass']('hover') 看着比較困惑。因為當flag = true 的時候 ,代碼就變成以下代碼:
$('.item')['addClass']('hover')
這樣寫法等同於
$('.item').addClass('hover')
再升華一下
可以根據需要來調用自己想要的function來處理更多的事情。
代碼如下:
function a(){
do something
}
function b(){
do something
}
flag ? a() : b();
盡量避免的情況
true ? 'true' : false ? 't' : 'f'