这两个if块之间是否存在逻辑差异?

时间:2014-08-21 14:04:36

标签: javascript if-statement logic

我相当确定两种方法都应该完成同样的事情。由于某种原因,第一个将永远不会进入最内部的块。如果条件匹配,第二种方法将返回false。将增量器置于if条件时会发生什么变化?

if (item.Reject)
{
    rejectCount++

    if (rejectCount >= maxRejects)
    {
        return false;
    }
}
else rejectCount = 0;

第二种方法:

if (item.Reject)
{
    if (++rejectCount >= maxRejects)
    {
        return false;
    }
}
else rejectCount = 0;

2 个答案:

答案 0 :(得分:1)

根据我刚刚写的一个Jsfiddle来测试它,他们做的完全相同。 我简化它来测试条件。但它有助于实现目的

var rejectCount = 0;
var maxRejects = 2;

function incr1() {
    rejectCount++;
    if (rejectCount >= maxRejects) {
      //  return false;
    }

    alert(rejectCount);
}

function incr2() {
    if (++rejectCount >= maxRejects) {
      //  return false;
    }
    alert(rejectCount);
}

http://jsfiddle.net/durbnpoisn/j23uhfr0/

答案 1 :(得分:0)

您能否提供您用于maxRejects的价值?

两种方法都是相同的,第一个例子没有理由不进入最内部的块。