表达式 (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'