JavaScript中有类似“死”的东西吗?我试过“休息”,但不起作用:)。
答案 0 :(得分:182)
throw new Error("my error message");
答案 1 :(得分:29)
如果您标记了块范围,则只能break
。例如:
myBlock: {
var a = 0;
break myBlock;
a = 1; // this is never run
};
a === 0;
您无法在范围内的函数内中断块范围。这意味着你无法做到这样的事情:
foo: { // this doesn't work
(function() {
break foo;
}());
}
你可以用功能做类似的事情:
function myFunction() {myFunction:{
// you can now use break myFunction; instead of return;
}}
答案 2 :(得分:21)
您只需使用return;
示例
$(document).ready(function () {
alert(1);
return;
alert(2);
alert(3);
alert(4);
});
返回将返回主调用函数test1();并从那里继续到test3();
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<script type="text/javascript">
function test1(){
test2();
test3();
}
function test2(){
alert(2);
return;
test4();
test5();
}
function test3(){
alert(3);
}
function test4(){
alert(4);
}
function test5(){
alert(5);
}
test1();
</script>
</body>
</html>
但如果你只是添加'';这将完全停止执行而不会导致任何错误。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<script type="text/javascript">
function test1(){
test2();
test3();
}
function test2(){
alert(2);
throw '';
test4();
test5();
}
function test3(){
alert(3);
}
function test4(){
alert(4);
}
function test5(){
alert(5);
}
test1();
</script>
</body>
</html>
这是用firefox和chrome测试的。我不知道IE或Safari如何处理
答案 3 :(得分:12)
只需拨打die()
,无需定义它。你的脚本会崩溃。 :)
当我这样做时,我通常会拨打discombobulate()
,但原则是相同的。
(实际上,它的作用是抛出一个ReferenceError
,使其与spudly的答案大致相同 - 但为了调试目的,输入的时间更短。)
答案 4 :(得分:7)
可以推出自己的PHP版本:
function die(msg)
{
throw msg;
}
function test(arg1)
{
arg1 = arg1 || die("arg1 is missing");
}
test();
答案 5 :(得分:5)
如果您正在使用nodejs,则可以使用
{{1}}
答案 6 :(得分:3)
使用萤火虫和光荣......
debugger;
永远不要让调试器向前迈进一步。比扔掉一个合适的Error
更清洁?
答案 7 :(得分:2)
在 Javascript 中,PHP的语言构造die
没有确切的同等性。 PHP中的die
几乎等于 Java 中的System.exit()
,它终止当前脚本并调用shutdown hooks。
有些用户建议;在某些情况下可以使用throw Error
,但它永远不会保证终止当前脚本。
除throw
语句之外总是存在一个异常处理块,除非您在最高级别的脚本块上调用它,该脚本块最终只会退出您正在执行的脚本块。
但是它不会阻止在这里执行第二个块(打印你好):
<script type="text/javascript">
throw new Error('test');
</script>
<script type="text/javascript">
document.write("hello");
</script>
答案 8 :(得分:0)
你可以使用return false; 这将终止你的脚本。
答案 9 :(得分:0)
这应该像die();
function die(msg = ''){
if(msg){
document.getElementsByTagName('html')[0].innerHTML = msg;
}else{
document.open();
document.write(msg);
document.close();
}
throw msg;
}
答案 10 :(得分:0)
您可以尝试:
return 0;
在停止过程中有效。
答案 11 :(得分:0)
在JS中没有相当于php die()的函数出口, 如果您不使用任何功能,则可以简单地使用return;
return;
答案 12 :(得分:0)
用于开发目的的全局die()函数:
var die = function(msg) {
throw new Error(msg);
}
使用die():
die('Error message here');
答案 13 :(得分:-4)
<script>
alert("i am ajith fan");
<?php die(); ?>
alert("i love boxing");
alert("i love MMA");
</script>