2013-08-28 1 views
-2

논리 명령문은 항상 부울 값 true 또는 false를 반환합니다. 그러나 OR 논리 연산에서 참 진술을 어떻게 검색합니까?JS에서 OR 논리 연산의 결과 검색

+0

JS에서 항상 부울 값을 반환하지는 않습니다. 부울을 원하면 논리 NOT 연산자 인'var x = !! (foo || bar)' –

+0

진술을 사용하여 변환 하시겠습니까? 표현을 말하는 거니? 병합 운영자에 대해서 말하는거야? –

+0

문구로 된 질문은 전혀 이해가되지 않으므로 모든 대답이 수용 가능하고 올바른 응답입니다. – Kastor

답변

0

JavaScript에서 OR 및 AND 연산자는 항상 피연산자 중 하나를 반환합니다. OR 연산자는 첫 번째 falsy 피연산자를 반환하고 (그 이후의 피연산자는 평가하지 않음) 모든 피연산자가 true 인 경우 마지막 피연산자를 반환합니다. AND 연산자는 유사하게 첫 번째 피연산자 피연산자 또는 마지막 피연산자를 반환합니다. 당신이 부울로 결과를 원하는 경우

, 당신은 truthy 값 falsy 값 truefalse을 반환 ! 연산자를 사용할 수 있습니다.

을 요약하면 :

!!(a || b)a 및/또는 b 그렇지 않으면 truthy하고 falsetrue 경우 반환합니다.

a || b

a이 truthy하고 b 그렇지 a 경우 반환합니다.

편집 : 당신을 위해 무엇을 찾고있는 것은 OR의 평가를 분리하는 것 같다 몇 가지 설명을 한 후 .

if (a === 56) { 
    // a is what you are looking for 
} else if (b === 56) { 
    // b is what you are looking for 
} else { 
    // neither a nor b are what you are looking for 
} 

위의 코드 조각은 코드와 동일한 평가를 수행하지만 첫 번째 표현식이 참 때 실행되는 코드의 지점을 가지고 첫 번째 표현식이 두 번째 표현식이 거짓이며, 경우에 실행 다른 지점 사실이다.

+0

하지만 함수에서 어느 것이 사실인지 어떻게 검색 할 수 있습니까? 'var a = 45, b = 56; 함수 무언가 (a === 56 || b === 56) {var result =; // return/retrieve true 값 (어느 쪽인지)}' – HRanDEV

+0

함수의 인수가 무엇인지 명확히 할 수 있습니까? 함수 정의와 실제 예제 호출을 분리하십시오. – Tibos

+0

죄송합니다 결과를 검색하려는 if 문입니다. 'var a = 45, b = 56; if (a === 56 || b === 56) {var result =; // return/retrieve true 값 (어느 b인지)} ' – HRanDEV