0

次のコードを持っている:

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 ...

しかし、その関数を呼び出すたびにそうする必要はありません。

4

7 に答える 7

3

それreturnは、ほぼすべてのプログラミング言語で行われていることだからです。

  1. 関数を終了し、
  2. 値を返します

他のコードを実行する必要がある場合は、return ステートメントの前に配置します。

編集:あなたの編集を見ましたがreturn、その(そしてすべての)コンテキストの本質を変えるものではありません. 現在のスコープの流れを停止し続け、値(あなたの場合はtrueまたはfalse)で最も近い上位のスコープに戻ります。

于 2012-08-13T13:57:49.623 に答える
3

キーワードreturnは、その名前が示すように、プログラム フロー制御を呼び出し元の関数に返し、オプションで関数の戻り値を設定します。

これは、すべての C ライクな言語で同じように機能します。

おそらくやりたいことは、キーワードのResult動作が異なる Delphi のようなアプローチです。関数が終了するときに使用される戻り値を設定するだけで、関数をすぐに終了するわけではありません。

function() {
  var result = someDefaultValue;

  if (someCondition)
    result = otherValue;

  if (otherCondition)
    result = yetAnotherValue;

  return result;
}
于 2012-08-13T14:02:09.350 に答える
1

return true は実行を中断し、その後は何も実行しないため、最後に return を配置してみてください

于 2012-08-13T13:58:14.463 に答える
1

return キーワードは、インタープリターがそのキーワードに到達したときに関数を終了させ ('return')、return ステートメントの後に (同じ関数内で) 何も処理を続行しません。

あなたが持っているものを書き換えることができます:

group['ids']= inputs.val();
console.log(group);
return true;
于 2012-08-13T13:58:18.030 に答える
1

return ステートメントが実行されると、現在の関数の実行が終了し、プログラムの制御が関数を呼び出したコンテキストに返されます。return ステートメント以降は実行されません。

于 2012-08-13T13:58:38.923 に答える
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;
}
于 2012-08-13T14:07:54.843 に答える
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);
}
于 2012-08-13T13:59:16.430 に答える