AND와 OR 연산자는 무조건 불린 값을 리턴하지 않고,
왼쪽 피연산자 값의 유형에 따라서 두 피연산자 중 하나를 리턴하는 방식으로 동작한다.
AND 연산자
console.log(true && true); //true
console.log(true && false); //false
console.log(false && true); //false
console.log(false && false); //false
- 왼쪽 값이 true면 오른쪽 값을 리턴한다.
- 왼쪽 값이 false면 오른쪽 값을 리턴하지 않는다.
console.log('tooktak' && '할 수 있다!') //할 수 있다!
OR 연산자 : 어느 한쪽이라도 true가 있으면 true가 리턴된다
console.log(true || true); //true
console.log(true || false); //true
console.log(false || true); //true
console.log(false || false); //false
- 왼쪽 값이 truthy하면 그대로 왼쪽 값을 리턴하고,
- 왼쪽 값이 falsy하면 오른쪽 값을 리턴한다.
불린 값이 아닌 것으로 해보자.
console.log(null && undefined); // null
console.log(0 || true); // true
console.log('0' && NaN); // NaN
console.log({} || 123); // {}
function print(value) {
const message = value || 'tooktak';
console.log(message);
}
print(); //빈 값이면 false니까 tooktak이 출력 되고,
print('할 수 있다'); //value가 들어갔으니 true이므로 '할 수 있다'가 출력 된다!
AND와 OR의 연산 우선순위
- AND 연산자의 우선순위가 더 높다.
- 다양한 연산자들을 복합적으로 사용해야 한다면 소괄호를 활용해서 의도에 맞는 연산 우선순위를 명확하게 표기하는 것이 좋다.
728x90
'코딩도 합니다 > JS' 카테고리의 다른 글
[자바스크립트 js] 변수와 스코프 / 함수 스코프 / 블록 스코프 (0) | 2021.05.20 |
---|---|
[자바스크립트 js] null 병합 연산자 (Nullish coalescing operator) (0) | 2021.05.20 |
[자바스크립트 js] Falsy 값과 Truthy 값 (0) | 2021.05.18 |
[자바스크립트 js] MouseEvent.relatedTarget (0) | 2021.05.16 |
[자바스크립트 js] 스크롤 이벤트 / scrollY 프로퍼티 (0) | 2021.05.16 |