时间:2010-07-25 17:16:25

标签: javascript

12 个答案:

答案 0 :(得分:570)

答案 1 :(得分:46)

显然你可以这样做:

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

查看块范围

我还没有看到任何缺点。但它似乎并不常见。

得出这个答案:JavaScript equivalent of PHP’s die

答案 2 :(得分:17)

答案 3 :(得分:16)

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

return false;比仅仅return;

要好得多

答案 4 :(得分:9)

使用一种不同的方法,您可以使用try catch和throw语句。

function name() {
    try {
        ...

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

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

答案 5 :(得分:3)

如果您正在寻找脚本以避免在发现某些错误时提交表单,则此方法应该可以正常工作

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

提交按钮类型更改为“按钮”

<input value="Save" type="button" onClick="verifyData()">
希望这有帮助。

答案 6 :(得分:3)

使用return将停止该函数并返回undefined或您使用return命令指定的值。

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

答案 7 :(得分:0)

我不喜欢回答那些不是真正解决方案的事情......

...但是当我遇到同样的问题时,我在下面做了解决方法:

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)
  }
}

希望它对任何人都有用。

答案 8 :(得分:0)

我认为抛出新错误是停止执行的好方法,而不仅仅是返回或返回false。对于前。我正在验证一些文件,最多只能允许五个文件在单独的功能中上传。

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);
}

在上面的示例中,除非抛出新的错误,否则我无法停止执行。只有在执行的主要功能中,仅返回或返回false才有效,否则它将不起作用。

答案 9 :(得分:-2)

出口();可用于进行下一次验证。

答案 10 :(得分:-4)

如果您使用的是jquery。这应该会阻止函数冒泡,因此调用它的父函数也应该停止。

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

答案 11 :(得分:-10)

键入任何抛出错误的随机命令,例如:

exit

die:-)