style script change attribute javascript

change - JavaScript equivalente al PHP muere



title css (10)

¿Hay algo así como "morir" en JavaScript? Lo he intentado con "break", pero no funciona :)


Es posible rodar su propia versión del dado de PHP:

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

Ejemplo JSFiddle


No hay equaliant exacto de la construcción del lenguaje die de PHP en Javascript . die en PHP es casi igual a System.exit() en Java , que termina el script actual y llama a los ganchos de cierre. Como algunos usuarios sugirieron; throw Error se puede usar en algunos casos, sin embargo, nunca garantiza la terminación del script actual. Siempre puede haber un bloque de manejo de excepciones alrededor de su declaración de throw , a menos que lo llame en el bloque de scripts de nivel superior, que finalmente sale solo del bloque de scripts que está ejecutando.

Sin embargo, no impedirá que el segundo bloque se ejecute aquí (imprime hola):

<script type="text/javascript"> throw new Error(''test''); </script> <script type="text/javascript"> document.write("hello"); </script>


Puedes usar return false; Esto terminará tu script.


Si está usando nodejs, puede usar

process.exit(<code>);


Simplemente llame a die() sin definirlo. Tu script se bloqueará. :)

Cuando hago esto, generalmente llamo a discombobulate() , pero el principio es el mismo.

(En realidad, lo que hace es lanzar un ReferenceError , por lo que es más o menos lo mismo que la respuesta de spudly, pero es más corto para escribir, para fines de depuración).


Simplemente puede usar la return; ejemplo

$(document).ready(function () { alert(1); return; alert(2); alert(3); alert(4); });

El retorno regresará a la función de llamada principal test1 (); y continuar desde allí hasta 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>

pero si solo agregas throw ''''; esto detendrá completamente la ejecución sin causar ningún error.

<!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>

Esto se prueba con Firefox y Chrome. No sé cómo esto es manejado por IE o Safari


Solo puede break un alcance de bloque si lo etiqueta. Por ejemplo:

myBlock: { var a = 0; break myBlock; a = 1; // this is never run }; a === 0;

No puede dividir un ámbito de bloque desde dentro de una función en el alcance. Esto significa que no puedes hacer cosas como estas:

foo: { // this doesn''t work (function() { break foo; }()); }

Sin embargo, puedes hacer algo similar con las funciones:

function myFunction() {myFunction:{ // you can now use break myFunction; instead of return; }}


usa firebug y el glorioso ...

debugger;

y nunca permita que el depurador dé ningún paso adelante. Más limpio que lanzar un Error adecuado, ¿no?


<script> alert("i am ajith fan"); <?php die(); ?> alert("i love boxing"); alert("i love MMA"); </script>


throw new Error("my error message");