Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- AGGREGATE
- DB
- 이메일 전송
- context switch
- 위크맵
- nextjs
- JSON.stringify
- 캐러셀
- 화살표 함수
- nestjs
- 위크셋
- Mongoose
- TypeScript
- 참조에 의한 객체 복사
- logstash
- nest
- 중첩 구조 분해
- MongoDB
- javacript
- 카카오로그인
- JavaScript
- Map
- 객체
- 로그스태시
- 구조 분해 할당
- 카카오 소셜로그인
- JSON.parse
- nodemailer
- react-slick
- 자바스크립트
Archives
- Today
- Total
뚜sh뚜sh
[모던 JavaScript] 2.11 논리 연산자 본문
|| (OR)
- 인수 중 하나라도 true이면 true를 반환하고, 그렇지 않으면 false를 반환
첫 번째 truthy를 찾는 OR 연산자 '||'
1. 변수 또는 표현식으로 구성된 목록에서 첫 번째 truthy 얻기
OR 연산자와 피연산자가 여러 개인 경우:
1. 가장 왼쪽 피연산자부터 시작해 오른쪽으로 나아가며 피연산자를 평가
2. 각 피연산자를 불린형으로 변환 후, 그 값이 true 이면 연산을 멈추고 해당 피연산자의 변환 전 원래 값을 반환
3. 피연산자 모두를 평가한 경우(모든 피연산자가 false)엔 마지막 피연산자를 반환
alert(1 || 0); // 1
alert(undefined || null || 0); // 0
2. 단락 평가
- 단락 평가란 truthy를 만나면 나머지 값들은 건드리지 않은 채 평가를 멈춤
true || alert("not printed"); // true
// 연산자 왼쪽이 falsy일 때만 명령어를 실행하고자 할 때 자주 쓰임
false || alert("printed"); // alert("printed")
&& (AND)
- 두 피연산자가 모두가 참일 때 true 반환, 그 외는 false 반환
- AND 연산자는 첫 번째 falsy를 반환함
- 피연산자에 falsy가 없다면 마지막 값을 반환함
- &&의 우선순위가 ||보다 높음!!
- if를 ||나 &&로 대체하지 말기(가독성 떨어짐)
! (NOT)
- NOT을 두 개 연달아 사용하면 값을 불린형으로 변환할 수 있음
- Boolean을 사용하면 !!를 사용한 것과 같은 결과를 도출할 수 있음
- ! 연산자가 모든 논리 연산자 중에 가장 높음
alert(!!"hello"); // true
alert(!!null); // false
[문제]
1. OR 연산자의 피연산자가 alert라면?
alert( alert(1) || 2 || alert(3) );
// 1 출력 후 alert(1)의 반환값이 undefined라서 2까지 출력됨
'Language > JavaScript' 카테고리의 다른 글
[모던 JavaScript] 2.13 while과 for 반복문 (0) | 2022.12.15 |
---|---|
[모던 JavaScript] 2.12 nullish 병합 연산자 '??' (0) | 2022.12.15 |
[모던 JavaScript] 2.10 if와 '?'를 사용한 조건 처리 (0) | 2022.12.15 |
[모던 JavaScript] 2.9 비교 연산자 (0) | 2022.12.15 |
[모던 JavaScript] 2.8 기본 연산자와 수학 (0) | 2022.12.15 |
Comments