비교 연산자
우선 일반적인 비교연산자의 종류와 의미를 알아보자.
사실 수학시간에 봤던 기호들이라 이해하기에 어렵지는 않다.
비교연산자 종류 | 의미 |
< | 초과 |
<= | 이상 |
> | 미만 |
>= | 이하 |
=== | 같음 |
!== | 다름 |
하지만 <===> <!==> 요놈들은 뭔가 특이한데...
과연 = / == / === 이 등호들에게는 어떤 차이가 있는 것일까?
우선 "="등호는 사실 비교를 위해 사용하는 기호가 아닌 변수에 값을 대입할 때 쓰는 기호임으로 비교연산자로 사용하지 않는다.
"=="와 "==="의 비교는 약간 어려울 수 있는데,
간단하게 정리하자면
== 혹은 !=는 type까지 엄격하게 비교하지 않는다.
그렇다. ==보다 더 빡세게 비교를 하는 녀석이 ===이다.
예를 들어 설명하자면, 다음과 같다.
1 == 1 // true
1 == "1" // true
1 === 1 // true
1 === "1" // false
약간 느낌이 오는가?
<===> 등호는 타입이 같은지도 비교를 하기 때문에 숫자 1과 문자열 1은 서로 다른것으로 비교를 하게 된다.
아직은 자료형이 익숙치 않은 초보 프로그래머에겐 ==기호 보다는 ===기호를 쓰는 것을 추천하는 이유다.
자세한건 아래 사이트에 잘 정리되어 있으니 참고하길.
https://dorey.github.io/JavaScript-Equality-Table/
If 조건문
if 조건문의 기본적인 형식은 아래와 같다.
if (조건1) { //조건1이 통과할 경우}
else if (조건2) { //조건1을 통과하지 않고 조건2를 통과할 경우}
else {//모든 조건을 통과하지 않는 경우}
여기서 조건은 참인지 거짓인지를 전달해 줄 수 있어야한다.
따라서 아래와 같은 논리 연산자를 함께 사용하기도 한다.
논리 연산자(Logical Operator)
- AND &&
- OR ||
- NOT !
여기서 주의할 점은 falsy한 값들이다.
falsy한 값들은 false로 취급되기 때문에 만약 if의 조건에 사용되면 구문이 실행되지 않는다.
falsy 값
- false
- null
- undefined
- 0
- NaN
- ''