Javascript Deep Dive/연산자

삼항 조건 연산자, 논리 연산자, 쉼표 연산자

FE묭묭 2022. 9. 9.

삼항 조건 연산자

var result = score >= 60 ? 'pass' : 'fail';
//             조건문       참일때   거짓일때
// 참일때 'pass'를 반환, 거짓일때 'fail'을 반환
  • 삼항 조건 연산자의 표현식은 값으로 평가할 수 있는 표현식인 문이다.
  • 같은 조건문인 if, else문은 표현식이 아닌 문이라 값처럼 사용할 수 없다.
  • 조건에 따라 어떤 값을 결정해야 한다면 if, else문 보다 삼항 조건 연산자 표현식을 사용하는게 유리하다.
  • 하지만 조건에 따라 수행해야 할 문이 하나가 아니라 여러개라면 if, else문의 가독성이 더 좋다.

논리 연산자

논리 연산자 의미 부수 효과
|| 논리합(OR) X
&& 논리곱(AND) X
! 부정(NOT) X

 

  • 논리 부정(!) 연산자는 언제나 불리언 값을 반환한다.
  • 피연산자가 불리언 값이 아니면 불리언 타입으로 암묵적 타입 변환된다.
// 암묵적 타입 변환
!0; // true
!'Hello'; // flase

 

  • 논리합(||) 또는 논리곱(&&) 연산자 표현식의 평가 결과는 불리언 값이 아닐 수도 있다.
  • 논리합(||) 또는 논리곱(&&) 연산자 표현식은 언제나 2개의 피연산자 중 어느 한쪽으로 평가된다.
// 단축 평가
'Cat' && ' Dog'; // 'Dog'
//9장쪽 단축평가에서 자세히 나온다고 한다.

 

드 모르간의 법칙

  • 논리 연산자로 구성된 복잡한 표현식은 가독성이 좋지 않아 한눈에 이해하기 어렵다
  • 아래의 드 모르간의 법칙을 활용하면 복잡한 표현식을 가독성 좋은 표현식으로 변환할 수 있다.
!(x || y) === (!x && !y)
!(x && y) === (!x || !y)

쉼표 연산자

  • 쉼표(,) 연산자는 왼쪽 피연산자부터 차례대로 피연산자를 평가하고, 마지막 피연산자의 평가가 끝나ㅣ면 마지막 피연산자의 평가 결과를 반환한다.
var x, y, z;

x = 1, y = 2, z = 3; // 3

댓글