티스토리 뷰

논리연산자

JS의 논리연산자에서는 피연산자가 꼭 Boolean 값이 아닌 경우라도 true 혹은 false로 취급될 수 있다.

false로 취급되는 값들은 아래와 같다.

  • null
  • NaN
  • 0
  • 빈 문자열 ("", '', ``)
  • undefined

논리 연산자 중 &&,|| 에는 피연산자로 Boolean 값을 포함하여 아무 값이나 줄 수 있다. Boolean이 아닌 값을 피연산자로 주면 연산 결과에 따라 피연산자를 반환한다.

 

1. 논리 AND ( && )

예) expr1 && expr2 : expr1이 true 또는 [true로 취급될 수 있는 값]이면 expr2를 반환. 반대의 경우 expr1을 반환.

2. 논리 OR ( || )

예) expr1 || expr2 : expr1이 true 또는 [true로 취급될 수 있는 값]이면 expr1을 반환. 반대의 경우 expr2를 반환.

3. 논리 NOT (!)

예) !expr : expr이 [true로 취급될 수 있는 값]이면 false 를 반환. 반대의 경우 true를 반환.

 

논리 NOT 연산자를 이중으로 사용하면 어떤 값이던 Boolean 값으로 바꿀 수 있다.

예) !!"apple" => true

     !!undefined => false

 

연산자 우선순위

AND(&&)연산자는 OR( || )연산자보다 먼저 실행된다.

true || false && false      // returns true
(true || false) && false    // returns false

 

단락 평가

false && expr
true || expr

위 구문들을 곰곰히 생각해 보자.

머리가 좋은 사람들은 벌서 눈치 챘겠지만, 위 두 구문에서 expr의 값은 중요하지 않다.

&& 연산에서 첫 번째 값이 false이면 expr의 값은 참조하지 않고 무조건 false를 리턴한다.

|| 연산에서는 첫 번쨰 값이 true이면 expr의 값은 참조하지 않고 무조건 true를 리턴한다.

즉 위의 경우들에서는 expr을 참조하지 않기 때문에 expr이 함수이더라도 실행되지 않는다.

 

이와 같은 연산방식을 [단락 평가] 라고 한다.


삼항연산자

조건문 ? A : B

조건문이 true이면 A를, 그렇지 않으면 B를 반환한다.

const age = 20;
console.log(age >= 19 ? 'Buy Drink' : 'Do Teen Stuff');

결과 :

Buy Drink

'Develop > JavaScript' 카테고리의 다른 글

JavaScript OOP 공부 1일차  (0) 2020.06.04
값으로서의 함수  (0) 2020.03.17
객체의 내용을 반복문으로 읽기  (0) 2020.03.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함