【es6】三元表达式

表达式 (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' 
 
原文地址:https://www.cnblogs.com/kevinmajesty/p/10648081.html