기능 조기 종료?
다음과 같은 기능이 있습니다.
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
'programing' 카테고리의 다른 글
mysql - 빈 테이블에 존재하지 않는 위치에 선택 항목 삽입 (0) | 2022.10.25 |
---|---|
C를 사용한 JSON 해석 (0) | 2022.10.25 |
구성 요소가 로드될 때 데이터를 검색하는 방법 (0) | 2022.10.25 |
MySQL - 여러 테이블의 관련 행 수 (0) | 2022.10.25 |
열에서 URL의 일부를 제거하는 SQL 문 (0) | 2022.10.25 |