논리 연산자(Logical Operator)

강지원·2021년 7월 28일
0
post-thumbnail

boolean(논리) 값과 함께 사용해서 boolean 값을 반환하며
종류는 다음과 같다.

  • && : and 연산자
  • || : or 연산자
  • ! : not 연산자

1. && (and 연산자)

연산자 중 둘 다 참일 때 true를, 그 외에는 false를 반환한다.

ex)
let and = true && false;
console.log(and); // false

1.1 and 연산자의 작동 과정

1) 연산자의 왼쪽부터 false 값을 탐색한다.
2) false 값을 찾으면 해당 값을 반환한다.
3) 마지막에 도착하면 마지막 해당 값을 반환한다.

1.2 and 연산자 예제

let a1 =  true && true;     // t && t returns true
let a2 =  true && false;    // t && f returns false
let a3 = false && true;     // f && t returns false
let a4 = false && (30 == 31); // f && f returns false
let a7 = "kang" && false;    // t && f returns false

2. || (OR 연산자)

연산자 중 하나라도 true라면 전부 true,
모두 false 라면 false를 반환한다.

ex)
let or = true || false;
console.log(or); //true 

2.1 or 연산자의 작동 과정

1) 연산자의 왼쪽부터 true 값을 탐색한다.
2) true 값을 찾으면 해당 값을 반환한다.
3) 마지막에 도착하면 마지막 해당 값을 반환한다.

2.2 or 연산자 예제

let o1 =  true || true;     // t || t returns true
let o2 = false || true;     // f || t returns true
let o3 =  true || false;    // t || f returns true
let o4 = false || (3 == 4); // f || f returns false
let o6 = false || "kang";    // f || t returns kang
let o7 = "kang" || false;    // t || f returns kang

3. ! (not 연산자)

값을 반대로 바꿔주는 연산자

ex)
const a = false;
console.log(!a); //true

단일 피연산자를 true로 변환할 수 있으면 false를 반환.
그 외에는 true를 반환.

k1 = !true               // !t returns false
k2 = !false              // !f returns true
k3 = !''                 // !f returns true
k4 = !'kang'              // !t returns false

3.1 !!(double not)

  • 두 개의 NOT 연산자를 직렬로 사용하여 임의의 값을 해당 불린의 원래 값으로 변환하도록 명시적으로 지정 가능.
  • 변환값은 true 와 false를 기반으로 한다.
n1 = !!true                   // !!truthy returns true
n2 = !!{}                     // !!truthy returns true: any object is truthy...
n3 = !!(new Boolean(false))   // ...even Boolean objects with a false .valueOf()!
n4 = !!false                  // !!falsy returns false
n5 = !!""                     // !!falsy returns false
n6 = !!Boolean(false)         // !!falsy returns false

ex)
const k = false;
console.log(!!k); // false



Reference
MDN
코드 쥬래건씨의 논리 연산자

profile
'Why' better than 'Yes'

0개의 댓글