티스토리 뷰
논리연산자
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
- javascript
- reactjs
- ignore
- State
- Object
- function
- ES6
- syntax-highlight
- SQL JOIN
- react
- file system
- react hook
- mark-down
- OOP
- Command
- pm2
- blog
- 논리연산자
- terminal
- useState
- highlight-js
- props
- useEffect
- npm
- Database
- nodejs
- daemon
- 삼항연산자
- code-block
- sql
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |