구문 오류 : 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;
(나는이 자바 스크립트를 PHP 함수에서 반향하고 있으며 $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 문을 사용하려고하면 else 블록이면 구문 오류가 발생합니다. 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
}
정적 메서드에 대해 잘못된 (이전) 구문을 사용하는 경우 ES6에서 발생할 수 있습니다.
export default class MyClass
{
constructor()
{
...
}
myMethod()
{
...
}
}
MyClass.someEnum = {Red: 0, Green: 1, Blue: 2}; //works
MyClass.anotherMethod() //or
MyClass.anotherMethod = function()
{
return something; //doesn't work
}
올바른 구문은 다음과 같습니다.
export default class MyClass
{
constructor()
{
...
}
myMethod()
{
...
}
static anotherMethod()
{
return something; //works
}
}
MyClass.someEnum = {Red: 0, Green: 1, Blue: 2}; //works
참조 URL : https://stackoverflow.com/questions/16068278/syntax-error-illegal-return-statement-in-javascript
'programing' 카테고리의 다른 글
PowerMock 및 Mockito로 Logger 및 LoggerFactory 모의 (0) | 2021.01.14 |
---|---|
JSlint에서보고 한 "foo is not defined"오류를 수정하는 방법은 무엇입니까? (0) | 2021.01.14 |
clang에 대한 OS X 10.9 gcc 링크 (0) | 2021.01.14 |
VCS 새로 고침 수행 중 ... (너무 오래 걸리거나 완료되지 않음) (0) | 2021.01.14 |
제목이없는 대화 상자로서의 AppCompatActivity (0) | 2021.01.14 |