본문 바로가기
자바스크립트 (JavaScript)/이론

[ 연산자와 구문 ] 논리 연산자

by Hwanii_ 2023. 11. 1.
728x90
//  논리 (Logical)

const a = true
const b = false

//  AND (그리고) 연산자
if (a && b) {   //  아무것도 출력 되지 않는다. (a가 참이여야 하고, b도 참이어야 한다)
    console.log('모두 참 !')
}

//  OR (또는) 연산자
if (a || b) {   //  출력 된다. (a가 참이거나, 또는 b가 참이다)
    console.log('하나 이상이 참 !')
}

console.log(true && false)  //  false

//  && == AND == 그리고 연산자를 사용 하면 단순하게 true 또는 false 가 반환 되는게 아니라,
//  연산자를 기준으로 좌우의 피 연산자가 반환 될 수 도 있다.

//  => && 연산자는 코드의 왼쪽에서부터 확인을 해서, 가장 먼저 만나는 거짓 데이터를 반환 한다.

//  숫자 1은 true 데이터 이고, 숫자 0은 false 데이터 이기 때문에, 0 데이터가 반환 된다.
console.log(1 && 0) //  0

console.log(1 && 2 && 0)    //  0

console.log(1 && 0 && 2)    //  0

console.log(0 && 1 && 2)    //  0

console.log('A' && 'B' && '')   //  '' : 빈 문자열 => false 데이터 (아무것도 출력 되지 않는다)

console.log('A' && 'B' && 'C')  //  모두가 참이면, 최종적으로 마지막 참인 데이터가 반환 된다. => C


//  => || : OR 연산자는 제일 첫번째에 나온 true 데이터를 반환 한다.

console.log(false || true)  //  true

console.log(0 || 1) //  1

console.log(false || 0 || {})   //  {} : 빈 객체 데이터는 true 데이터 이다.

console.log(false || [] || null)    //  [] : 빈 배열 데이터는 true 데이터 이다.

console.log(function () {
} || undefined || '')  //  f () {} : 함수 데이터도 true 데이터 이다.

//  NaN : Not a Number 은 false 데이터 이지만,
//  false 도 false 데이터 이고, 0 도 false 데이터 이고, NaN 도 false 데이터인 상황 이다.
//  더이상 넘어갈 수 없으니, 참인 데이터가 존재 하지 않지만,
//  최종적으로 제일 마지막에 있는 데이터가 반환 되게 된다.
console.log(false || 0 || NaN)

 

 

&& 은 어차피 모두가 참이어야 조건문이 통과되므로,

console.log() 를 통해 데이터의 참 / 거짓을 판단 할 때,

하나라도 거짓인 데이터가 있으면 조건문 통과가 되지 않으므로,

제일 처음에 확인된 거짓인 데이터를 반환 한다.

대신에, 모두가 참이면, 제일 마지막에 참인 데이터가 출력 된다.

 

|| 은 조건이 몇개가 됬더라도, 결국 1개만 참이여도 모두 참이 되기 때문에,

console.log() 를 통해 어떤 데이터가 참인지를 확인 하면 된다.

그래서, 제일 처음에 확인된 참인 데이터를 반환 한다.

대신에, 모두가 거짓이면, 제일 마지막에 거짓인 데이터가 출력 된다.

 

반응형