0

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

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

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

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

但想不通第一个。

4

2 回答 2

3

if可以在// etc 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
}
于 2013-11-07T10:10:34.727 回答
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;
于 2013-11-07T10:11:51.607 回答