Diary

[개발일기] js연산자

브라더 코드 2023. 5. 26. 13:43

(2023.05.23)

코딩테스트를 보며 다시금 개념을 제대로 잡은 연산자 두가지.

 

1. || (논리합 연산자)

A || B -> A 또는 B가 true이면 true를 리턴한다.

논리합 연산자를 안다고 생각하지만 코테에서 틀린걸 보면 제대로 아는게 아니다. 자신을 객관적으로 보자.

function Test(type) {
  if (type !== '1' || type !== '2') {
    type = '3';
  }
  return type;
}
// 위 함수를 실행할때 결괏값은 무조건 '3'만 나온다.
// 기억하자. 둘 중 하나라도 true이면 true이다.
// 평소 A || B에서 A,B가 표현식이 아닌 값일때만 생각했어서 헷갈렸던 것이다.
// A가 falsy한 값일때 B를 리턴한다(truly하면 A를 리턴). &&와 반대다.

 

 

2. && (논리곱 연산자)

A && B -> A,B 모두 true여야 true를 리턴한다. 

 

3. ! (부정 연산자)

실무에서 자주 쓰여서 알고 있는 내용인데 !를 두개 쓰는 것은

정확히 알지 못했다. 변수나 값 앞에 !!를 붙이면 그 값을 boolean타입으로 변환시킨다. Boolean()으로 감싸는 것과 똑같다.

ex) !!'' -> false, !!{} -> true, !![] -> true, !!null -> false, !!undefined -> false