[javascript] PHP의 다이와 동등한 JavaScript

JavaScript에 “죽음”과 같은 것이 있습니까? 나는 “휴식”으로 시도했지만 작동하지 않습니다 🙂



답변

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;
}}


답변

throw new Error("my error message");


답변

간단히 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에서 이것이 어떻게 처리되는지 모르겠습니다.


답변

die()정의하지 않고 전화 하십시오. 스크립트가 충돌합니다. 🙂

이렇게하면 보통 discombobulate()대신 부르지 만 원칙은 같습니다.

(사실, 이것이하는 일은을 던지는 ReferenceError것인데, 이는 거의 어리석은 대답과 거의 같지만 디버깅 목적으로 입력하는 것이 더 짧습니다.)


답변

자신의 버전의 PHP 주사위를 굴릴 수 있습니다.

function die(msg)
{
    throw msg;
}

function test(arg1)
{
    arg1 = arg1 || die("arg1 is missing");
}

test();

JSFiddle 예제


답변

nodejs를 사용하는 경우 다음을 사용할 수 있습니다.

process.exit(<code>);


답변

방화범과 영광스러운 …

debugger;

디버거가 앞으로 나아갈 수 없게하세요. 적절한 Error, innit를 던지는 것보다 더 깨끗합니까?