JavaScript
[JavaScript - 3] 연산자 / Boolean / 조건문 (if / else if / else)
whitecoding
2022. 10. 24. 18:55
연산자
산술, 증감 연산자
- +, -, *
- ++, --, **
- / : 몫
- % : 나머지
비교 연산자
- === : 같다.
- !== : 같지 않다.
- <, >, <=, >=
논리 연산자
- && (그리고) : 모두가 참일 때 참
- || (또는) : 모두가 거짓일때
- ! (부정) : 해당 논리값의 반대 논리값을 반환
다음 밑 예제문이 어떠한 출력 값인지 생각해보자.
false && true
!false || !true
!unedfined
!(3>2)
!'hello'
false || true
!Boolean(anything) // anything 결과값이 거짓이면 참, 참이면 거짓
Falsy & Truthy
1.Falsy
거짓 같은 값(Falsy, falsey로 쓰이기도 함) 값은 불리언 문맥에서 false로 평가되는 값입니다.
false | 키워드 false |
0 | 숫자 zero |
-0 | 음수 zero |
0n | BigInt. 불리언으로 사용될 경우, 숫자와 같은 규칙을 따름. |
"" | 빈 string |
null | null - 아무런 값도 없음 |
undefined | undefined - 원시값 |
NaN | NaN - 숫자가 아님 |
2.Truthy
Falsy한 값이 아니면 모두가 Truthy한 값이다. 이상하게 빈배열[]과 빈객체{}는 Truthy한 값이다;;
JS 연산자 순위(비트 연산자 제외)
이것 저것 연산자를 혼용해서 쓰다보면 원하지 않는 값을 얻을 수 있다. 우리가 알고 있는 수학이랑 비슷한 개념으로 이루어진다.
순위 | 기능 | 연산자 | |||||
1 | 괄호 | () | |||||
2 | 증감/논리 연산자 not | ++ | -- | ** | ! | ||
3 | 산술 연산자 곱셈 | * | / | % | |||
4 | 산술 연산자 덧셈 | + | - | ||||
5 | 비교 연산자 대소 | < | <= | > | >= | ||
6 | 비교 연산자 같음 | == | === | != | !== | ||
7 | 논리 연산자 and | && | |||||
8 | 논리 연산자 or | || | |||||
9 | 대입 연산자 | = | += | -= | *= | /= | %= |
if / else if / else
다음 밑 예제문이 어떠한 출력 값인지 생각해보자.
function plusOrMinus(score) {
const extra = score % 10;
if (extra <= 2) {
return '-';
} else if (extra >= 8) {
return '+';
} else {
return '';
}
}
function convertScoreToGradeWithPlusAndMinus(score) {
let grade;
if (score > 100 || score < 0) {
return 'INVALID SCORE';
}
if (score === 100) {
return 'A+';
}
if (score >= 90) {
grade = 'A';
} else if (score >= 80) {
grade = 'B';
} else if (score >= 70) {
grade = 'C';
} else if (score >= 60) {
grade = 'D';
} else if (score >= 0) {
grade = 'F';
}
if (grade !== 'F') {
grade = grade + plusOrMinus(score);
}
return grade;
}