提前退出function?

我有一个function:

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

有没有像JavaScript中的exit()

你可以使用return

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

这将发送一个undefined的返回值给任何被调用的函数。

 var x = myfunction(); console.log( x ); // console shows undefined 

当然,你可以指定一个不同的返回值。 使用上面的例子,无论返回什么值都将被logging到控制台。

 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

我看不到任何缺点。 但它似乎不是一个常见的用途。

派生出这个答案: JavaScript的等价的PHP的死亡

这个:

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

返回false ; 好多了

使用一个不同的方法,你可以使用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(); } } 

提交buttontypes更改为“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 */ } } 

出口(); 可以用来进行下一个validation。

我不喜欢回答那些不是真正的解决scheme的东西

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

 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,所以调用它的父函数也应该停止。

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

键入任何引发错误的随机命令,例如:

 exit 

要么

 die:-)