Синтаксическая ошибка: незаконный оператор return в JavaScript
я получаю действительно странную ошибку JavaScript, когда я запускаю этот код:
<script type = 'text/javascript'>
var ask = confirm('".$message."');
if(ask==false)
{
return false;
}
else
{
return true;
}
</script>
в консоли JavaScript он говорит:
Syntax Error: Illegal return statement
это происходит при return true;
и return false;
(Я повторяю этот javascript из функции php;$message
переменная является одним из параметров php)
что не так с моим кодом?
5 ответов
return
имеет смысл только внутри функции. В вашем коде нет функции.
кроме того, ваш код достоин, если отдел отдела избыточности. Предполагая, что вы переместите его в правильную функцию, это будет лучше:
return confirm(".json_encode($message).");
редактировать намного позже: изменен код для использования json_encode
чтобы гарантировать, что содержимое сообщения не сломается только из-за Апострофа в сообщении.
Если вы хотите вернуть некоторое значение, то оберните свой оператор в функцию
function my_function(){
return my_thing;
}
проблема заключается в заявлении на 1-й строке, если вы пытаетесь использовать PHP
var ask = confirm ('".$message."');
Если вы пытаетесь использовать PHP, вы должны использовать
var ask = confirm (<?php echo "'".$message."'" ?>); //now message with be the javascript string!!
в JavaScript оператор return используется только внутри блока функции. если вы пытаетесь использовать оператор return внутри independent if else block, он запускает синтаксическую ошибку: незаконный оператор return в JavaScript
вот мой пример кода, чтобы избежать таких ошибок :
<script type = 'text/javascript'>
(function(){
var ss= 'no';
if(getStatus(ss)){
alert('Status return true');
}else{
alert('Status return false');
}
function getStatus(ask){
if(ask=='yes')
{
return true;
}
else
{
return false;
}
}
})();
</script>
пожалуйста, проверьте Jsfiddle пример
где вы пытаетесь вернуть значение? консоль в dev tools лучше для отладки
<script type = 'text/javascript'>
var ask = confirm('".$message."');
function answer(){
if(ask==false){
return false;
} else {
return true;
}
}
console.log("ask : ", ask);
console.log("answer : ", answer());
</script>
по моему опыту, чаще всего это сообщение об ошибке означает, что вы поставили случайную закрывающую скобку где-то, оставив остальные ваши операторы вне функции.
пример:
function a() {
if (global_block) //syntax error is actually here - missing opening brace
return;
} //this unintentionally ends the function
if (global_somethingelse) {
//Chrome will show the error occurring here,
//but actually the error is in the previous statement
return;
}
//do something
}