返回true,在javascript中打破代码

时间:2012-08-13 13:55:03

标签: javascript jquery return

拥有以下代码:

function test(x) {
   if(x=='a') return false;
   return true;
}

if(y ==x) {
    return test('a');
    group['ids']= inputs.val();
    console.log(group);
}

为什么return true只是因为没有超出return

而超越我的代码

注意:我希望return test()的答案能够控制它是否应该继续使用代码,或者不是

更新

我已经做过类似的事情:

var response = test('b');
if (response==false) return false;
... more code here ...

但我希望避免在每次调用该函数时都这样做

7 个答案:

答案 0 :(得分:3)

因为这是return每种编程语言中的作用:它

  1. 退出该功能并
  2. 返回值
  3. 如果您需要执行其他代码,请将其放在return语句之前。

    修改:我看到了您的修改,但它并没有改变{(1}}在该(和每个)上下文中的本质。它将继续停止当前作用域的流动,返回到最近的较高作用域,其值为(在您的情况下为真或假)。

答案 1 :(得分:3)

关键字return,顾名思义,程序流控制返回给调用函数,并可选择设置函数的 return 值。

在每种类似C语言中,它的工作方式相同。

您可能想要做的是类似于Delphi的方法,其中关键字Result的工作方式不同 - 它只设置函数终止时将使用的返回值,但不会立即终止该函数。

function() {
  var result = someDefaultValue;

  if (someCondition)
    result = otherValue;

  if (otherCondition)
    result = yetAnotherValue;

  return result;
}

答案 2 :(得分:1)

尝试将return放在最后,因为return true将中断执行,之后不会执行任何操作

答案 3 :(得分:1)

当解释器到达该关键字时,return关键字会导致函数结束('return'),并且在return语句之后不会继续处理任何内容(在同一个函数中)。

你可以改写你拥有的东西:

group['ids']= inputs.val();
console.log(group);
return true;

答案 4 :(得分:1)

当执行return语句时,当前函数的执行结束,程序的控制返回到调用该函数的上下文。返回语句后的任何内容都不会被执行。

答案 5 :(得分:0)

我通常会发现哪些方案是错误/错误,而return false;出现在这些方案中,然后继续查看正确的代码。

function Testmcdooder (test) {
    if (test === false) {
        // just exit up here
        return false;            
    }

    // now all of this code will run only if we're fine
    group['ids']= inputs.val();
    console.log(group);
}

答案 6 :(得分:0)

函数中存在return语句。我认为您更愿意使用if声明:

if (y == x) {
  if (test('a')) {
    group['ids']= inputs.val();
    console.log(group);
  }
}

如果您还想在确定是否应运行其他状态后返回该值:

if (y == x) {
  if (test('a')) {
    group['ids']= inputs.val();
    console.log(group);
    return true;
  } else {
    return false;
  }
}

可替换地:

if (y == x) {
  var cond = test('a');
  if (cond) {
    group['ids']= inputs.val();
    console.log(group);
  }
  return cond;
}