答案 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
查看块范围我还没有看到任何缺点。但它似乎并不常见。
答案 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:-)