语法错误:在JavaScript非法return语句(Syntax error: Illegal r

2019-08-31 10:29发布

我得到一个非常奇怪的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;

(我是从一个PHP函数呼应此javascript;所述$message变量是PHP参数之一)

什么是错我的代码?

Answer 1:

return才有一个函数里的感觉。 有一个在你的代码中没有的功能。

此外,你的代码是值得如果冗余系部。 假设你将它移动到适当的功能,这将是更好的:

return confirm(".json_encode($message).");

编辑多晚得多:更改代码,使用json_encode以保证信息内容不破,只是因为消息中的撇号。



Answer 2:

如果你想返回一些值,然后换你的函数声明

function my_function(){ 

 return my_thing; 
}

问题是与一号线的说法,如果你要使用PHP

var ask = confirm ('".$message."'); 

如果您尝试使用PHP,你应该使用

 var ask = confirm (<?php echo "'".$message."'" ?>); //now message with be the javascript string!!


Answer 3:

在JavaScript return语句仅用于内部功能块。 如果您尝试使用内部独立return语句,如果其他阻止它引发语法错误:在JavaScript非法return语句

这里是我的示例代码来避免这样的错误:

<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例子



Answer 4:

你在哪里试图返回值? 在开发工具到控制台是用于调试好

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


Answer 5:

根据我的经验,通常此错误消息意味着你已经把一个偶然的右括号的地方,留在函数外的语句的其余部分。

例:

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
}


文章来源: Syntax error: Illegal return statement in JavaScript