1. 그리고 &&
(1) 정의
A&&B 는 A, B 둘 다 참이여야지만 참을 반환
const A = true
const B = true
if (A&&B) {
console.log('A,B 둘 다 참이다.')
}
// A,B 둘 다 참이다 반환
(2) JS만의 특이점
위에서 그냥 'A,B 둘 다 참이면 참을 반환' 한다고 말했지만, JS는 다른 언어들과 달리 여기서 그치지 않고 자기들만의 규칙이 있다.
만약에 A&&B 자체를 console에 찍는다고 하자.
다른 언어 같았으면, A = 0 , B = 1 이면 false를 찍는다. (0은 거짓, 0이 아닌 숫자는 모두 참 취급을 하므로 )
하지만 JS는 0이 출력된다.
이렇게 되는 이유는 JS 만의 규칙이 존재하기 때문이다.
JS에서의 && 연산자는 가장 먼저 만나는 false 값을 반환한다. (false 만난 이후부터는 안 읽음)
만약에 전부 참이면 제일 마지막의 참 값을 반환한다.
예시1)
''(빈 문자열)은 false 취급 하므로, 27줄의 출력은 제일 먼저 만난 false 값인 빈 문자열이 나왔고
28줄은 전부 true인 값이므로 제일 마지막 true 값인 c가 나왔다.
예시2)
0은 false인 값이다. console로 뭘 먼저 찍든 간에 제일 먼저 만난 false 값인 0을 반환한다.
2. 이거나 ||
(1) 정의
A||B는 A나 B 둘 중 하나가 참이면 참을 반환한다.
const A = true
const B = false
if(A||B){
console.log('A혹은 B가 참이다.')
}
// A가 참이므로 'A 혹은 B가 참이다. ' 가 찍힘
(2) JS만의 특이점
|| 관련해서도 JS 만의 규칙이 있다. 이는 &&와 논리적으로 반대 이다.
|| 는 가장 먼저 만나는 참 값을 반환한다. (참 값을 만나면 그 뒤는 읽지 않는다.)
만약 참 값이 없다면 맨 마지막의 거짓 값을 반환한다.
예시1)
빈 객체, 빈 배열, 함수 모두 참 취급을 받는다.
따라서 맨 먼저 참 취급 받는 값을 만났을 때, 그 값을 반환하고 그 뒤로는 읽지 않는다.
예시2)
모두 거짓일 때는 제일 마지막에 만난 거짓값을 반환한다.
3. 스스로 해보기
(2 번째 복습)
1. 정리
&& : 전부 참이여야지 참
> 반환값: 최초로 만나는 거짓값 혹은, 모든 변수가 참일 경우 맨 마지막에 만나는 참값
> 최초로 거짓값을 만났다면 그 뒤는 읽지 않는다.(하나라도 거짓이 있으면 그 boolean 값은 거짓이므로)
|| : 변수들 중 하나라도 참이면 참
> 반환값: 최초로 만나는 참 값, 모두 거짓일 경우 제일 마지막에 만나는 거짓값
> 최초로 참 값을 만났다면 그 뒤로는 읽지 않는다. (하나라도 참이 있으면 그 boolean은 참이므로)
2. 스스로 해보기 (2)
'Language > JS' 카테고리의 다른 글
전개 연산자 (0) | 2023.04.02 |
---|---|
Nullish 병합 과 삼항 연산자 (0) | 2023.04.02 |
부정, 비교 연산자 (0) | 2023.03.31 |
산술 할당 증감 연산자 (0) | 2023.03.31 |
Type 확인 (0) | 2023.03.31 |