검색해서 나온 설명들이 어려워서 정리해봤다.
논리곱 (&&)
A && B
A 조건이 맞으면 A, 그렇지 않으면 B 를 반환한다.
이걸 if 문으로 풀자면 if(A){ A } else { B }
인데 단축평가이기 때문에 이렇게 if 처럼 연산되지 않고 A를 바로 반환한다. 그냥 이해하기 쉽게 이렇게 if 로 풀어봤다.
논리합 (||)
A || B
A 조건이 안맞으면 A, 그렇지 않으면 B 를 반환한다.
이걸 역시 if 문으로 풀자면 if(!A){ A } else { B }
인데 이 역시 단축평가 이기 때문에 첫조건에 맞으면 바로 A를 반환한다.
console.log(true && true) //결과 : true console.log(true && false) //결과 : false console.log(false && true) //결과 : false console.log(false && false) //결과 : false console.log(true || true) //결과 : true console.log(true || false) //결과 : true console.log(false || true) //결과 : true console.log(false || false) //결과 :false
나는 이 연산식을 사용할 때 논리합이 헷갈릴 때가 있어서 단순하게 이해하려고 논리곱이든 논리합이든 앞조건(A)이 맞으면 && 은 앞(A), || 는 뒤(B) 를 반환하자 라고 한번 생각한다.
물론 논리합이 false 조건을 쓰는 이유에 맞게 사용하기 때문에 위 논리합과 논리곱에 대해 충분히 이해하고 활용하는 것이 좋다.