Javascript三元运算符的序列

时间:2012-11-14 23:48:03

标签: javascript

我从Javascript库中获得了以下代码:

function func_1()
{
    if ( null == decimal ) 
    {
        return dPR || (dpr(2) ? 2 : dpr(1.5) ? 1.5 : dpr(1) ? 1 : 0);
    }
}

我对if语句中的代码特别感兴趣。

我怎么写这个以便它更容易阅读?!因为现在我无法理解它。

感谢。

3 个答案:

答案 0 :(得分:4)

它相当于:

if (dPR) {
    return dPR;
} else {
    if (dpr(2)) {
        return 2;
    } else {
        if (dpr(1.5)) {
            return 1.5;
        } else {
            if (dpr(1)) {
                return 1;
            } else {
                return 0;
            }
        }
    }
}

答案 1 :(得分:1)

if (dPr) {
    return dPr;
} 
else {
    if (dpr(2))
        return 2
    else if (dpr(1.5))
        return 1.5;
    else if (dpr(1))
        return 1;
    else 
        return 0;
}

答案 2 :(得分:0)

if ( decimal == null ) {

    if ( dPR ) {

        return dPR;

    } else {

        if ( dpr(2) ) {

            return 2;

        } else if ( dpr(1.5) ) {

            return 1.5;

        } else if ( dpr(1) ) {

            return 1;

        } else return 0;

    }

}