JavaScript相当于PHP的模具

时间:2009-09-01 09:18:04

标签: javascript

JavaScript中有类似“死”的东西吗?我试过“休息”,但不起作用:)。

14 个答案:

答案 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();

JSFiddle Example

答案 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>