返回false;返回true;我很困惑

时间:2015-02-03 12:27:52

标签: jquery return

下面是我的jquery函数

function chekTouch($div1, $div2) {
      var x1 = $div1.offset().left;
      var y1 = $div1.offset().top;
      var h1 = $div1.outerHeight();
      var w1 = $div1.outerWidth();
      var b1 = y1 + h1;
      var r1 = x1 + w1;
      var x2 = $div2.offset().left;
      var y2 = $div2.offset().top;
      var h2 = $div2.outerHeight();
      var w2 = $div2.outerWidth();
      var b2 = y2 + h2;
      var r2 = x2 + w2;

      if (b1 < y2 || y1 > b2 || r1 < x2 || x1 > r2) return false;
      return true;
}

我不明白写return return后跟return true意味着什么。 任何人都可以解释我的痛苦吗?

4 个答案:

答案 0 :(得分:1)

if (b1 < y2 || y1 > b2 || r1 < x2 || x1 > r2) return false;
      return true;

等效
if (b1 < y2 || y1 > b2 || r1 < x2 || x1 > r2) 
{
   return false; //If your condition is true then return false
}
else
{
   return true;  //If condition is false then return true
}
  

If条件只包含一个语句,然后它可以在没有bracketsIf条件包含多个语句的情况下写入,然后它必须在括号内写入。

答案 1 :(得分:0)

如果满足条件(b1&lt; y2 || y1&gt; b2 || r1&lt; x2 || x1&gt; r2),则返回false。 如果没有,它将永远返回真实。

答案 2 :(得分:0)

您可能会因为认为两个语句都将被执行而感到困惑。只执行了一个return,因此没有冲突。

如果if条件为真,则执行return false并且该方法的逻辑流程结束。它永远不会到达下一行,因为return false执行时放弃了方法

答案 3 :(得分:0)

如果没有复合语句,即只有一个语句,那么你可以使用if-else而不用{}(花括号)

 if (b1 < y2 || y1 > b2 || r1 < x2 || x1 > r2) return false;
  return true;

这只是意味着如果支票b1 < y2 || y1 > b2 || r1 < x2 || x1 > r2共同返回true,那么进入if主体并执行return false否则不会执行下一个语句,即在您的情况下return true