提前退出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:-)