2015-01-23 4 views
2

자바 스크립트에서-else를 쓰는 동안 구문 오류가 발생합니다.자바 스크립트 조건부 return 문 (축약어 if-else 문)

 if(data && data.cod == '404') {return}; 
     var temp  = data && data.main && data.main.temp; 
     //Code here... 

나도 알아, 내가 return (data && data.cod == '404')?'true':'false'; 같은 삼항 연산자를 사용하는 경우는 잘 작동하지만 난 찾고 있어요 : 나는 정상적인 경우 - 다른 아래와 같이 사용할 때 작품 미세하지만

data && data.cod == '404' && return; 

: 여기 내 코드입니다 조건부로 "반환"하면 계속 더 진행합니다.

+0

의 반환을 쓰기 : 당신이 정말로 원하는 경우 한 줄에 넣을 수 있습니다

if (condition) { doSomething(); else { doSomethingElse(); } 

: 그 것이 무엇입니다 ??? 'data && data.cod == '404'&& return;' –

+2

질문이 조금 불투명합니다 .... –

+2

'return' 문은 _statement_입니다. 그것은 표현이 아니므로 그것을 사용할 수 없습니다. – JLRishe

답변

6

당신이하려는 것은 구문 규칙을 위반하는 것입니다.

return 키워드

data && data.cod == '404' && <something>에서 return statement

의 시작 부분에 사용할 수 있습니다, 당신은 <something>에 배치 할 수있는 유일한 것은식이 아닌 문입니다. 거기에 return을 넣을 수 없습니다. 난 당신이 부작용으로 코드를 실행할 수있는 "똑똑한"방법으로 일을하려고하는 것처럼 단축키를 사용하여에 추천 할 것입니다

if(data && data.cod == '404') { 
    return; 
} 

:

사용을 조건부로 적절한 if 문을 반환합니다. 가 값을 생산하는 조건 연산자와 부울 연산자의 목적은 다음과 같습니다

좋은 :

var value = condition ? valueWhenTrue : valueWhenFalse; 

나쁜 : 당신은이 일을해서는 안

condition ? doSomething() : doSomethingElse(); 

언어가 그렇게 할 수있는 경우에도 마찬가지입니다. 그것은 조건부 연산자가 의도 한 것이 아니며 코드를 이해하려고하는 사람들에게 혼란을줍니다.

올바른 if 문을 사용하십시오.

if (condition) { doSomething(); } else { doSomethingElse(); } 
+0

우수 답변! 이와 같은 것들이 Douglas Crockford가 [JSLint] (http://www.jslint.com/)에 쓴 이유 중 하나이며 왜 그렇게 엄격한 것입니까. 그는 "똑똑한"코드를 작성하려고 애 쓰지 않았습니다. "똑똑한"코드를 작성하면 버그를 디버그하기가 어려워집니다. –

0

그럼 다음 여기 원의 어떤 경우

var result = (data && data.cod == '404') 
if (result) { 
    return result; 
} else { 
    //otherwise 
}