语法错误:JavaScript中的非法返回语句

imu*_*ion 55 javascript syntax-error

运行此代码时,我收到一个非常奇怪的JavaScript错误:

<script type = 'text/javascript'>
var ask = confirm('".$message."');
if (ask == false)
{
    return false;     
}

else
{
    return true;
}
</script>
Run Code Online (Sandbox Code Playgroud)

在JavaScript控制台中,它说:

Syntax Error: Illegal return statement

它发生在return true;return false;

(我从php函数回应这个javascript; $message变量是php参数之一)

我的代码出了什么问题?

Nie*_*sol 85

return只在函数内部才有意义.您的代码中没有任何功能.

此外,如果冗余部门您的代码是值得的.假设你把它移到一个合适的函数,这会更好:

return confirm(".json_encode($message).");
Run Code Online (Sandbox Code Playgroud)

稍后编辑:更改的代码用于json_encode确保消息内容不会因为消息中的撇号而中断.


pra*_*iri 6

如果你想返回一些值,那么将你的语句包装在函数中

function my_function(){ 

 return my_thing; 
}
Run Code Online (Sandbox Code Playgroud)

如果您尝试使用 PHP,问题出在第一行的语句上

var ask = confirm ('".$message."'); 
Run Code Online (Sandbox Code Playgroud)

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

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


Sun*_*S.M 6

在 javascript 中,return 语句仅在函数块内使用。如果您尝试在独立的 if else 块中使用 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>
Run Code Online (Sandbox Code Playgroud)

请检查Jsfiddle示例