Есть ли что-то вроде "умереть" в JavaScript? Я пробовал с "break", но не работает:)
JavaScript-эквивалент PHP файлов
Ответ 1
Вы можете только 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;
}}
Ответ 2
throw new Error("my error message");
Ответ 3
Вы можете просто использовать пример return;
$(document).ready(function () {
alert(1);
return;
alert(2);
alert(3);
alert(4);
});
Возврат вернется к основной функции caller 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>
но если вы просто добавите throw ''; это полностью остановит выполнение, не вызывая ошибок.
<!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
Ответ 4
Просто позвоните die()
, не определяя его. Ваш script выйдет из строя.:)
Когда я это делаю, я обычно называю discombobulate()
, но принцип тот же.
(На самом деле, это то, что выбрасываете ReferenceError
, что делает его примерно таким же, как ответ на случайный ответ, - но он короче для ввода в целях отладки.)
Ответ 5
Можно свернуть собственную версию PHP die:
function die(msg)
{
throw msg;
}
function test(arg1)
{
arg1 = arg1 || die("arg1 is missing");
}
test();
Ответ 6
Если вы используете nodejs, вы можете использовать
process.exit(<code>);
Ответ 7
используйте firebug и славный...
debugger;
и никогда не позволяйте отладчику сделать какой-либо шаг вперед. Чище чем бросать правильный Error
, не так ли?
Ответ 8
Нет точного выравнивания языковой конструкции die
PHP в Javascript. die
в PHP в значительной степени равен System.exit()
в Java, который завершает текущий script и вызывает выключения.
Как предлагали некоторые пользователи; throw Error
может использоваться в некоторых случаях, однако он никогда не гарантирует прекращение текущего script.
Всегда может быть блок обработки исключений, окружающий ваш оператор throw
, если вы не вызываете его в верхнем блоке script, который в конечном итоге выходит только из блока script, который вы выполняете.
Однако это не помешает выполнению второго блока (печатает привет):
<script type="text/javascript">
throw new Error('test');
</script>
<script type="text/javascript">
document.write("hello");
</script>
Ответ 9
Вы можете использовать return false; Это закончит ваш script.
Ответ 10
Это должно работать вроде die();
function die(msg = ''){
if(msg){
document.getElementsByTagName('html')[0].innerHTML = msg;
}else{
document.open();
document.write(msg);
document.close();
}
throw msg;
}
Ответ 11
Вы можете попробовать с:
return 0;
эта работа в случае остановки процесса.
Ответ 12
В JS нет функции выхода, эквивалентной php die(), если вы не используете какую-либо функцию, вы можете просто использовать return;
return;
Ответ 13
<script>
alert("i am ajith fan");
<?php die(); ?>
alert("i love boxing");
alert("i love MMA");
</script>