我得到一个非常奇怪的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参数之一)
什么是错我的代码?
return
才有一个函数里的感觉。 有一个在你的代码中没有的功能。
此外,你的代码是值得如果冗余系部。 假设你将它移动到适当的功能,这将是更好的:
return confirm(".json_encode($message).");
编辑多晚得多:更改代码,使用json_encode
以保证信息内容不破,只是因为消息中的撇号。
如果你想返回一些值,然后换你的函数声明
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!!
在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例子
你在哪里试图返回值? 在开发工具到控制台是用于调试好
<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
}