programing

기능 조기 종료?

shortcode 2022. 10. 25. 20:23
반응형

기능 조기 종료?

다음과 같은 기능이 있습니다.

function myfunction() {
  if (a == 'stop')  // How can I stop the function here?
}

뭐 이런 거 있어요?exit()JavaScript에서?

그냥 사용하시면 됩니다.return.

function myfunction() {
     if(a == 'stop') 
         return;
}

그러면 반환값이 전송됩니다.undefined기능이라고 불리는 것까지요.

var x = myfunction();

console.log( x );  // console shows undefined

물론 다른 반환 값을 지정할 수 있습니다.반환되는 값은 모두 위의 예를 사용하여 콘솔에 기록됩니다.

return false;
return true;
return "some string";
return 12345;

당신은 이것을 할 수 있다고 합니다.

function myFunction() {myFunction:{
    console.log('i get executed');
    break myFunction;
    console.log('i do not get executed');
}}

라벨의 사용에 의한 블록스코프를 참조해 주세요.https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label

나는 아직 어떤 단점도 볼 수 없다.하지만 일반적인 용도는 아닌 것 같아요.

답변 도출: PHP의 다이와 동등한 JavaScript

function myfunction() {
     if(a == 'stop') 
         return false;
}

return false;단순한 것보다 훨씬 낫다return;

이것은, 다음과 같습니다.

function myfunction()
{
     if (a == 'stop')  // How can I stop working of function here?
     {
         return;
     }
}

조금 다른 접근방식을 사용하면try catch, throw 스테이트먼트를 사용합니다.

function name() {
    try {
        ...

        //get out of here
        if (a == 'stop')
            throw "exit";

        ...
    } catch (e) {
        // TODO: handle exception
    }
}

에러가 발견되었을 때 폼을 송신하지 않기 위해서 스크립트를 찾고 있는 경우는, 이 방법이 유효합니다.

function verifyData(){
     if (document.MyForm.FormInput.value.length == "") {
          alert("Write something!");
     }
     else {
          document.MyForm.submit();
     }
}

송신 버튼의 종류를 「버튼」으로 변경하다[button]

<input value="Save" type="button" onClick="verifyData()">

이게 도움이 되길 바라.

사용방법return기능을 정지하고 돌아갑니다.undefined또는 return 명령어로 지정한 값.

function myfunction(){
    if(a=="stop"){
        //return undefined;
        return; /** Or return "Hello" or any other value */
    }
}

새 오류를 던지는 것이 단순히 반환하거나 반환하는 것보다 실행을 중지하는 좋은 방법이라고 생각합니다.전남편에게.다른 기능으로 업로드 할 수 있는 최대 5개의 파일만 허용하는 파일 수를 확인하고 있습니다.

validateMaxNumber: function(length) {
   if (5 >= length) {
        // Continue execution
   }
   // Flash error message and stop execution
   // Can't stop execution by return or return false statement; 
   let message = "No more than " + this.maxNumber + " File is allowed";
   throw new Error(message);
}

그러나 나는 이 함수를 메인 플로우 함수에서 다음과 같이 부르고 있다.

  handleFilesUpload() {
      let files =  document.getElementById("myFile").files;
      this.validateMaxNumber(files.length);
}

위의 예에서는 새로운 에러를 발생시키지 않는 한 실행을 중지할 수 없습니다.Just return or return false는 실행의 주요 기능을 수행하는 경우에만 작동하며 그렇지 않으면 작동하지 않습니다.

난 진짜 해결책이 아닌 것에 대답하는 걸 싫어해

...그러나 같은 문제가 발생했을 때, 이하의 회피책을 강구했습니다.

function doThis() {
  var err=0
  if (cond1) { alert('ret1'); err=1; }
  if (cond2) { alert('ret2'); err=1; }
  if (cond3) { alert('ret3'); err=1; }
  if (err < 1) {
    // do the rest (or have it skipped)
  }
}

누구에게나 유용하게 쓰였으면 좋겠다.

jquery를 사용하는 경우.그러면 함수의 버블이 정지되므로 호출하는 부모함수도 정지합니다.

  function myfunction(e)
  {
       e.stopImmediatePropagation();
       ................
  }

exit(); 를 사용하여 다음 검증을 수행할 수 있습니다.

에러를 발생시키는 임의의 랜덤명령어를 입력합니다.다음은 예를 제시하겠습니다.

exit

또는

die:-)

언급URL : https://stackoverflow.com/questions/3330193/early-exit-from-function

반응형