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();
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");