Есть ли в JavaScript что-то вроде «die»? Пробовал с "перерывом", но не получается :)
javascript
купакоб
источник
источник
function die(str) {throw new Error(str || "Script ended by death");}
Или что-нибудь XD Есть много вариантов получше, но это сработает. Может быть полезно для отладки, если вы хотите запустить только первую часть скрипта, чтобы убедиться, что он работает.die
,goto
,eval
и т.д. бесконечно выплюнул (и не без заслуг), но все они имеют свои особые случаи применения, особенно при отладке низкого уровня. В противном случае языки не включали бы их. В этом случае эквиваленты JSreturn
иthrow
достаточно безобидны.Ответы:
Вы можете
break
заблокировать область, только если пометите ее. Например:Вы не можете сломать область видимости блока изнутри функции в области видимости. Это означает, что вы не можете делать что-то вроде:
Вы можете сделать нечто подобное с помощью функций:
источник
foo: {}
это объект?foo: if(true){...}
источник
Вы можете просто использовать
return;
примерВозврат вернется к основной вызывающей функции test1 (); и перейдите оттуда к test3 ();
а если просто добавить бросок ''; это полностью остановит выполнение без каких-либо ошибок.
Это проверено с помощью Firefox и Chrome. Я не знаю, как это делается в IE или Safari.
источник
return
выходит только закрывающая функция. Это не сработает, если вы захотите прекратить выполнение всего скрипта.throw ""
: ... без ошибок ... - Не совсем ...Uncaught ""
Просто позвоните,
die()
даже не определив. Ваш скрипт выйдет из строя. :)Когда я это делаю, я обычно звоню
discombobulate()
, но принцип тот же.(На самом деле, то, что он делает, - это throw a
ReferenceError
, что делает его примерно таким же, как ответ spudly, но он короче для ввода в целях отладки.)источник
die
интуитивно понятен и лаконичен. Ему не хватает преимуществ,throw
когда дело доходит до регистрации конкретного сообщения об ошибке, но иногда достаточно просто номера строки. Кстати,die;
без круглых скобок (un-) тоже работает.Если вы используете nodejs, вы можете использовать
источник
Можно бросить свою собственную версию кубика PHP:
Пример JSFiddle
источник
var a = arguments[3] || die('message')
. вместо этого, я думаю, что die должно быть:function die(msg) { return eval(`throw "${msg}"`);)
но даже тогда, я думаю, это должно быть просто жестко помещено в строку, которая разрывается, чтобы ошибка показывала, какая строка не удалась, напримерthis.inputFile = argv[2] || eval('throw "this program requires an input file."');
используйте firebug и славный ...
и никогда не позволяйте отладчику сделать шаг вперед. Чище, чем подбрасывать
Error
, не так ли?источник
В Javascript нет точного эквивалента языковой конструкции
die
PHP . в PHP почти такой же, как в Java , которая завершает текущий скрипт и вызывает перехватчики выключения. Как предложили некоторые пользователи; может использоваться в некоторых случаях, однако никогда не гарантирует завершения текущего сценария. Вокруг вашего оператора всегда может быть блок обработки исключений - если вы не вызываете его в блоке сценария самого верхнего уровня, который в конечном итоге выходит только из блока сценария, который вы выполняете.die
System.exit()
throw Error
throw
Однако это не помешает выполнению второго блока здесь (печатает привет):
источник
В JS нет функции exit, эквивалентной php die (), если вы не используете какую-либо функцию, вы можете просто использовать return;
источник
вы можете попробовать:
которые работают в случае остановки процесса.
источник
Вы можете использовать return false; Это остановит ваш скрипт.
источник
Это должно работать как die ();
источник
Глобальная функция die () для целей разработки:
Используйте die ():
источник
источник