Javascript简写如果语句添加else语句

时间:2013-11-07 10:08:22

标签: javascript if-statement shortcut

我正在使用预编译的代码,我必须为以下if语句添加else语句:

if(F && F[0]) for(var i=0; i<F.length; i++) readImage( F[i], '1417', '1417');

我通常使用这种类型的语句快捷方式:

if(dog == 'billy') ? true : false ;

但无法弄清楚第一个。

2 个答案:

答案 0 :(得分:3)

您可以在if / for / while等语句中放置一行代码,而无需使用括号。以下代码不会执行bar(),但会执行rab()

var foo = false;
if (foo) 
    bar();
rab();

缩进代码看起来像这样:

if(F && F[0]) 
    for(var i=0; i<F.length; i++) 
        readImage( F[i], '1417', '1417');

这与此基本相同:

if(F && F[0]) {
    for(var i=0; i<F.length; i++) {
        readImage( F[i], '1417', '1417');
    }
}

所以你可以把它重写为:

if(F && F[0]) {
    for(var i=0; i<F.length; i++) {
        readImage( F[i], '1417', '1417');
    }
} else {
    //Something else
}

答案 1 :(得分:3)

将事物混合成一行通常会增加混淆感。您的第一个代码块是:

if(F && F[0]) 
    for(var i=0; i<F.length; i++) 
        readImage( F[i], '1417', '1417');

所以你需要做的就是添加else:

if(F && F[0]) 
    for(var i=0; i<F.length; i++) 
        readImage( F[i], '1417', '1417');
else
   //something

我个人觉得使用括号更加容易,它使一切变得更容易理解:

if(F && F[0]) {
    for(var i=0; i<F.length; i++) {
        readImage( F[i], '1417', '1417');
    }
}
else {
   //something
}

关于你通常的说法,你会混淆两种不同的技术,标准如果:

if(dog == 'billy') 
    //true 
else 
    //false

和条件运算符(通常称为三元),它不需要if部分,通常用于条件赋值:

var isTheDogCalledBilly = dog == 'billy' ? true : false;