2012-09-30 3 views
0

나는이 같은 몇 가지 변수를 보았다 :비교 변수

var comparison = <condition> || /* It could be "&&" too */ <condition>; 

나는 그것이 무엇인지 모르는 그것은 무엇을 할 수 있습니까? Tks 너무 많이!

답변

2

그들은 ' logical operators (MDN) :

expr1 && expr2 : false로 변환 할 수 있으면 expr1을 반환하고 그렇지 않으면 false를 반환합니다. 그렇지 않으면 expr2를 리턴합니다. 따라서 부울 값과 함께 사용하면 & &은 두 피연산자가 모두 true이면 true를 반환하고 그렇지 않으면 false를 반환합니다. 그렇지 않은 경우는 false를 리턴합니다.

expr1 || expr2 : true로 변환 할 수 있으면 expr1을 반환하고 그렇지 않으면 false를 반환합니다. 그렇지 않으면 expr2를 리턴합니다. 따라서 부울 값과 함께 사용하면 || 두 피연산자 중 하나가 참이면 true를 반환합니다. 둘 다 false이면 false를 반환합니다.

+0

@ruakh 견적을 변경했습니다. – jeremy

1

코드는 두 조건을 평가하고 부울 값을 반환합니다. 이 경우

var comparison = 2 > 1 && 3 < 1;

comparisonfalse로 설정한다. 적어도 하나 개의 조건이 true 경우 ||true을 반환하면서

&&

는 두 조건에 해당하는 경우에만 true를 반환합니다.

+0

원래 질문의 경우와 같지 않습니다. Elias Van Ootagem의 답변이 맞습니다. – akronymn

3

주로 함수 인수를 특정 기본값으로 초기화하는 데 사용됩니다.

if (!(arg1)) 
{//if arg1 is falsy 
    arg1 = 'Default for arg1';//assign 
} 

를 아득히 &&이가는대로, 즉 거의 같은 이야기 :이 코드가 무엇을

function foo(arg1,arg2) 
{ 
    arg1 = arg1 || 'Default for arg1'; 
    arg2 = arg2 || 'Default for arg2'; 
} 

가 실제로 수행하면 동일하다

function foo(arg1,arg2) 
{ 
    var areBothArgsTrue = arg1 && arg2;//sets true is both args were truthy, else assigns false 
    arg1 = arg1 || 'Default for arg1'; 
    arg2 = arg2 || 'Default for arg2'; 
}