Hoe het script in JavaScript te beëindigen?

Hoe kan ik het JavaScript-script afsluiten zoals PHP’s exitof die? Ik weet dat het niet de beste manier is om te programmeren, maar ik moet wel.


Antwoord 1, autoriteit 100%

JavaScript-equivalent voor PHP’s die. Trouwens, het roept gewoon exit()(bedankt 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 '';
}

Antwoord 2, autoriteit 94%

“exit”-functies sluiten het programma of script meestal af samen met een foutmelding als parameter. Bijvoorbeeld die(…) in php

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

Het equivalent in JS is om een fout te signaleren met het throwzoekwoord als volgt:

throw new Error();

Je kunt dit eenvoudig testen:

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

Antwoord 3, autoriteit 63%

Zelfs in eenvoudige programma’s zonder handvatten, gebeurtenissen en dergelijke, is het het beste om code in een “hoofd” -functie te plaatsen, zelfs als dit de enige procedure is:

<script> 
function main()
{
//code
}
main();
</script>

Op deze manier kun je “return” gebruiken als je het programma wilt stoppen.


Antwoord 4, autoriteit 24%

Als het je niet kan schelen dat het een fout is, schrijf dan gewoon:

fail;

Dat zorgt ervoor dat uw belangrijkste (algemene) code niet verder gaat.
Nuttig voor sommige aspecten van debugging / testen.


5, Autoriteit 11%

Plaats de debugger;trefwoord in uw JavaScript-code waar u de uitvoering wilt stoppen. Open vervolgens de ontwikkelaarstools van uw favoriete browser en laad de pagina opnieuw. Nu moet het automatisch pauzeren. Open de bronnen sectie van uw gereedschappen: de debugger;trefwoord is gemarkeerd en u hebt de optie om de uitvoering van het script te hervatten.

Ik hoop dat het helpt.

Meer informatie op:


6, Autoriteit 10%

In mijn geval gebruikte ik de window.stopAPI die vergelijkbaar is met het klikken op de X-knop in uw browser:

window.stop();

Antwoord 7, autoriteit 4%

Ik denk dat deze vraag is beantwoord, klik hiervoor meer informatie. Hieronder staat het korte antwoord dat het is gepost.

throw new Error("Stop script");

U kunt uw browser ook gebruiken om breekpunten toe te voegen, elke browser is vergelijkbaar, bekijk de onderstaande informatie voor uw browser.

Klik hier

Voor informatie over Firefox-breekpunten klik hier
Voor informatie over breekpunten van Explorer klik
Voor informatie over Safari-onderbrekingspunten klik hier


8

gooien “”;

is een misbruik van het concept, maar waarschijnlijk de enige optie. En ja, je zult alle gebeurtenisluisteraars moeten resetten, net als het geaccepteerde antwoord vermeldt. U hebt ook een enkel punt van toegang nodig als ik gelijk heb.

Bovenaan: u wilt een pagina die u per e-mail rapporteert zodra deze wordt gegooid – u kunt hiervoor bijvoorbeeld Raven/Sentry gebruiken. Maar dat betekent dat je jezelf valse positieven produceert. In dat geval moet u ook de standaardhandler bijwerken om dergelijke gebeurtenissen eruit te filteren of dergelijke gebeurtenissen op negeren op het dashboard van Sentry in te stellen.

window.stop();

Dit werkt niet tijdens het laden van de pagina. Het stopt ook het decoderen van de pagina. Je kunt het dus niet echt gebruiken om de gebruiker een javascript-vrije variant van je pagina aan te bieden.

foutopsporing;

Stopt de uitvoering alleen als de debugger is geopend. Werkt prima, maar geen resultaat.


Antwoord 9

In JavaScript zijn er meerdere manieren, hieronder zijn er enkele

Methode 1:

throw new Error("Something went badly wrong!");

Methode 2:

return;

Methode 3:

return false;

Methode 4:

new new

Methode 5:

schrijf uw aangepaste functie, gebruik bovenstaande methode en bel waar u maar wilt

Opmerking:
Als u de uitvoering van de code gewoon wilt pauzeren, kunt u

. gebruiken

debugger; 

Antwoord 10

Ik weet dat dit oud is, maar als je een vergelijkbare PHP die()-functie wilt, kun je het volgende doen:

function die(reason) {
    throw new Error(reason);
}

Gebruik:

console.log("Hello");
die("Exiting script..."); // Kills script right here
console.log("World!");

In het bovenstaande voorbeeld wordt alleen “Hallo” afgedrukt.


Antwoord 11

Om verschillende opties samen te vatten:

window.stop();
debugger;
for(;;);
window.location.reload();

Als de pagina is geladen en u de crash niet wilt opsporen of opnieuw wilt laden:

throw new Error();

Wis bovendien alle time-outs

var id = window.setTimeout(function() {}, 0);
while (id--) {
    window.clearTimeout(id);
}

afbreken DOM/XMLHttpRequest

$.xhrPool = [];
$.xhrPool.abortAll = function() {
    $(this).each(function(i, jqXHR) { 
        jqXHR.abort();  
        $.xhrPool.splice(i, 1); 
    });
}
$.ajaxSetup({
    beforeSend: function(jqXHR) { $.xhrPool.push(jqXHR); },
    complete: function(jqXHR) {
        var i = $.xhrPool.indexOf(jqXHR);
        if (i > -1) $.xhrPool.splice(i, 1); 
    }
});

verwijder alle gebeurtenislistenersinclusief inline

$("*").prop("onclick", null).off();

Er zijn misschien andere dingen. Laat het me weten in een reactie.


Antwoord 12

Deze kleine functie komt aardig in de buurt van het nabootsen van PHP’s exit(). Voeg, net als bij de andere oplossingen, niets anders toe.

function exit(Msg)
    {
    Msg=Msg?'*** '+Msg:'';
    if (Msg) alert(Msg);
    throw new Error();
    } // exit

Antwoord 13

Als u een niet-gedefinieerde functie in het script gebruikt, stopt het script vanwege “Uncaught ReferenceError”. Ik heb het geprobeerd door de code te volgen en de eerste twee regels uitgevoerd.

Ik denk dat dit de beste manier is om het script te stoppen. Als er een andere manier is, reageer dan alsjeblieft. Ik wil ook een andere beste en eenvoudige manier weten. Trouwens, ik kreeg geen exit of die ingebouwde functie in Javascript zoals PHP om het script te beëindigen. Als iemand het weet, laat het me dan weten.

alert('Hello');
document.write('Hello User!!!');
die();  //Uncaught ReferenceError: die is not defined
alert('bye');
document.write('Bye User!!!');

Antwoord 14

Als u gewoon wilt voorkomen dat verdere code wordt uitgevoerd zonder een fout te “gooien”, kunt u tijdelijk window.onerroroverschrijven, zoals weergegeven in cross-exit:

function exit(code) {
    const prevOnError = window.onerror
    window.onerror = () => {
        window.onerror = prevOnError
        return true
    }
    throw new Error(`Script termination with code ${code || 0}.`)
}
console.log("This message is logged.");
exit();
console.log("This message isn't logged.");

Antwoord 15

Ik gebruik iobroker en kon het script gemakkelijk stoppen met

stopScript();

Antwoord 16

Deze code stopt de uitvoering van alle JavaScripts in het huidige venster:

   for(;;);

Antwoord 17

Om de uitvoering van het script zonder fouten te stoppen, kunt u al uw script in een functie opnemen en uitvoeren.
Hier is een voorbeeld:

(function () {
    console.log('one');
    return;
    console.log('two');
})();

Antwoord 18

In de meeste gevallen niet van toepassing, maar ik had veel asynchrone scripts in de browser en als hack wel

window.reload();

om alles te stoppen.


Antwoord 19

Dit is een voorbeeld, dat,
als er een voorwaarde bestaat, beëindigt u het script.
Ik gebruik dit in mijn SSE client-side javascript, als de

<script src="sse-clint.js" host="https://sse.host" query='["q1,"q2"]' ></script>

kan niet rechtstreeks vanuit JSON-ontleding worden geparseerd …

if( ! SSE_HOST  ) throw new Error(['[!] SSE.js: ERR_NOHOST - finished !']);

… in ieder geval is het algemene idee:

if( error==true) throw new Error([ 'You have This error' ,  'At this file', 'At this line'  ]);

Hiermee beëindigt / sterven uw JAVASRIPT-script


20

Maak eenvoudig een BOOL-staat,
Geen behoefte aan ingewikkelde code hier ..

Als u zelfs eenmaal naar true / of meerdere keren draait,
Het geeft allebei één oplossingslijn / niet meerdere –
eigenlijk eenvoudig als dat.


21

Ik gebruik dit stuk code om de uitvoering te stoppen:

throw new FatalError("!! Stop JS !!");

U krijgt echter een consolefout, maar het werkt goed voor mij.


22

Als u Firefox of een browser gebruikt, kan het niet worden gedaan met de meeste van deze consolemethoden zodra u een iterator hebt gestart (zoals u kunt zien). U kunt naar de bron gaan en de uitvoering van het script handmatig pauzeren. (Dit stopt het nog steeds niet volledig per zeg)

screenshot van ontwikkelaarmodus


23

Ik gebruik retourverklaring in plaats van gooien als gooi geeft fout in de console. De beste manier om het te doen is om de voorwaarde

te controleren

if(condition){
 return //whatever you want to return
}

Dit stopt eenvoudigweg de uitvoering van het programma vanaf die regel, in plaats van fouten in de console te geven.

Other episodes