[javascript] JavaScript로 스크립트를 종료하는 방법은 무엇입니까?

PHP exit나 JavaScript와 같은 JavaScript 스크립트를 종료하려면 어떻게 die해야합니까? 나는 이것이 최선의 프로그래밍 관행이 아니라는 것을 알고 있지만 필요합니다.



답변

PHP와 동등한 JavaScriptdie . BTW는 단지 호출합니다 exit()(splattne 덕분에).

function exit( status ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Brett Zamir (http://brettz9.blogspot.com)
    // +      input by: Paul
    // +   bugfixed by: Hyam Singer (http://www.impact-computing.com/)
    // +   improved by: Philip Peterson
    // +   bugfixed by: Brett Zamir (http://brettz9.blogspot.com)
    // %        note 1: Should be considered expirimental. Please comment on this function.
    // *     example 1: exit();
    // *     returns 1: null

    var i;

    if (typeof status === 'string') {
        alert(status);
    }

    window.addEventListener('error', function (e) {e.preventDefault();e.stopPropagation();}, false);

    var handlers = [
        'copy', 'cut', 'paste',
        'beforeunload', 'blur', 'change', 'click', 'contextmenu', 'dblclick', 'focus', 'keydown', 'keypress', 'keyup', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'resize', 'scroll',
        'DOMNodeInserted', 'DOMNodeRemoved', 'DOMNodeRemovedFromDocument', 'DOMNodeInsertedIntoDocument', 'DOMAttrModified', 'DOMCharacterDataModified', 'DOMElementNameChanged', 'DOMAttributeNameChanged', 'DOMActivate', 'DOMFocusIn', 'DOMFocusOut', 'online', 'offline', 'textInput',
        'abort', 'close', 'dragdrop', 'load', 'paint', 'reset', 'select', 'submit', 'unload'
    ];

    function stopPropagation (e) {
        e.stopPropagation();
        // e.preventDefault(); // Stop for the form controls, etc., too?
    }
    for (i=0; i < handlers.length; i++) {
        window.addEventListener(handlers[i], function (e) {stopPropagation(e);}, true);
    }

    if (window.stop) {
        window.stop();
    }

    throw '';
}


답변

“종료”기능은 일반적으로 오류 메시지와 함께 프로그램 또는 스크립트를 매개 변수로 종료합니다. 예를 들어 PHP에서 die (…)

die("sorry my fault, didn't mean to but now I am in byte nirvana")

JS와 동등한 것은 다음과 같이 throw 키워드에 오류를 알리는 것입니다.

throw new Error();

이것을 쉽게 테스트 할 수 있습니다 :

var m = 100;
throw '';
var x = 100;

x
>>>undefined
m
>>>100


답변

핸들, 이벤트 등이없는 간단한 프로그램에서도 코드가 유일한 절차 인 경우에도 “메인”기능에 코드를 넣는 것이 가장 좋습니다.

<script>
function main()
{
//code

}
main();
</script>

이 방법으로 프로그램을 멈추고 싶을 때 “return”을 사용할 수 있습니다.


답변

오류인지 걱정하지 않으면 다음과 같이 작성하십시오.

fail;

그러면 기본 (전역) 코드가 진행되지 않습니다. 디버깅 / 테스트의 일부 측면에 유용합니다.


답변

JS 또는 노드 스크립트를 종료하는 방법 에는 여러 가지 가 있습니다 . 가장 관련성이 높은 것은 다음과 같습니다.

// This will never exit!
setInterval((function() {
    return;
}), 5000);

// This will exit after 5 seconds, with signal 1
setTimeout((function() {
    return process.exit(1);
}), 5000);

// This will also exit after 5 seconds, and print its (killed) PID
setTimeout((function() {
    return process.kill(process.pid);
}), 5000);

// This will also exit after 5 seconds and create a core dump.
setTimeout((function() {
    return process.abort();
}), 5000);

REPL 에있는 경우 (예 : node명령 행에서 실행 한 후 ) 입력 .exit하여 종료 할 수 있습니다 .


답변

필자의 경우 window.stop브라우저에서 X 버튼을 클릭하는 것과 같은 API를 사용했습니다 .

window.stop();


답변

장소 debugger;는 실행을 중지하려는 자바 스크립트 코드에 키워드를. 그런 다음 자주 사용하는 브라우저의 개발자 도구를 열고 페이지를 다시로드하십시오. 이제 자동으로 일시 중지됩니다. 도구 의 소스 섹션을여십시오. debugger;키워드가 강조 표시되고 스크립트 실행을 재개 할 수있는 옵션이 있습니다.

도움이 되길 바랍니다.

자세한 정보 :