220715 TIL

Parker.Park·2022년 7월 15일
0

TIL

목록 보기
31/39

220715 TIL

해야할 것은 많다. 그러나 약간 방향을 못 잡은 감이 없지 않다. 우선은 복습에 집중하고 있다. 화이팅하고 시작해야 하는 금요일이다.
알고리즘에서 레퍼런스 코드를 보면 의외로 많이 보이는 것들이 있다. 바로 논리연산자 인데 if안에 조건문으로는 많이 사용하였는데, 다른 기능들을 알아보자.

논리연산자 OR ||

if문에서는 둘중 하나 라도 true 이면 true를 반환하였다. 추가적인 기능으로는 연산자가 여러 개 있을 경우 이다.
우선 예시를 보자.

let a = 0
let b = 1
let c = true

let result = a || b || c
console.log(result) //1

a 는 0이기 때문에 falsy한 값으로 false이다. b와 c는 truthy이다. 그런데 반환값은 '1'이다. 그 이유는 다음과 같이 작동한다고 한다.

  1. 가장 왼쪽 부터 평가한다고 한다.
  2. truthy한 값이면 연산을 멈추고 truthy한 값을 반환한다.
  3. 모두 평가하여 false인 경우 가장 오른쪽에 있는 값을 반환한다고 한다.
let a = 0
let b = undefined
let c = null

let result = a || b || c
  console.log(result) //null

||개념을 정리하자면 왼쪽부터 피연산자를 truthy/falsy한지 검증하고, 그 중 하나라도 truthy하면 반환하고, 모두 falsy하다면 마지막 피연산자를 반환 하는 것으로 이해 한다. 그렇다면 &&는?

논리연산자 &&

논리 연산자 또한 조건문에 대해서는 패스하겠다. 피연산자와 사용 할 경우 동작은 다음과 같다고 한다.

  1. 가장 왼쪽부터 피연산자를 평가한다고 한다.
  2. 평가 할때 falsy한 값일 경우 피연산자를 반환한다고 한다.
  3. 모든 피연산자가 truthy할 경우 마지막 피연산자를 반환한다고 한다.
//왼쪽부터 오른쪽으로 연산을 시작하여 
//falsy한 첫 번째 피연산자를 반환한다.
let a = 1
let b = 0
let c = true

let result = a && b && c
  console.log(result) //0
//모두가 truthy한 경우 가장 마지막 피연산자를 반환한다.
let a = 1
let b = true
let c = "hi"

let result = a && b && c
  console.log(result) //'hi'

참조

[Logical OR (||), MDN, 2022년07월18일]
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR

[논리 연산자, javascript.info, 2022년07월18일]
https://ko.javascript.info/logical-operators

profile
개발자준비중

0개의 댓글