三元运算符作为短条件语句

Dor*_*use 1 javascript ternary-operator

在Javascript中使用三元运算符代替更长的条件语句是否有任何问题,例如使用:

(variable == "dog") ? dog_stuff() : false;
Run Code Online (Sandbox Code Playgroud)

而不是

if ( variable == "dog" ) 
{
    dog_stuff();
}
Run Code Online (Sandbox Code Playgroud)

这可能听起来像一个愚蠢的问题,但我发现它非常快速和易于阅读,如果有可能的缺点,我只是不想使用它?

biz*_*lop 5

你也可以写

(variable == 'dog') && dog_stuff();
Run Code Online (Sandbox Code Playgroud)

如果你没有else语句.

来自backbone.js的几行:

  options || (options = {});
  models = _.isArray(models) ? models.slice() : [models];
  model = this.getByCid(models[i]) || this.get(models[i]);
Run Code Online (Sandbox Code Playgroud)

如果非常必要,您可以对多个语句进行分组:

(1==1) && (a=2,b=3)
alert(a); // 2
alert(b); // 3
Run Code Online (Sandbox Code Playgroud)