조건문을 사용할때는 boolean 타입에 대한 이해가 중요하고 비교연산자가 필요하다
비교연산자는 아래의 표와 같다
기호 | 설명 |
---|---|
<, > | 초과, 미만 |
<=, >= | 이상, 이하 |
=== | 같다(수학에서의 =) |
!== | 다르다 |
기호 | 설명 |
---|---|
== | 같다 |
!= | 다르다 |
이 비교 연산자는 타입에 대해서 엄격하게 판단하지 않는다. 예시는 아래와 같다
1 == '1'
true /// 숫자 1과 문자열 1을 타입에 대해 엄격하게 검사하지 않으므로 true가 된다
'true' == true
true /// 문자열 true와 boolean타입 true에 대해서도 타입에 대해 검사하지 않으므로 true가 나온다
==혹은 !=인 경우 어떨 때 true와 false에 해당하는지 나타낸 테이블
조건문은
if(조건1) {
// 조건1이 통과할 경우
} else if(조건2) {
// 조건1이 통과하지 않고
// 조건2가 통과하는 경우
} else {
// 모든 조건이 통과하지 않는 경우
}
과 같이 사용할 수 있다. 조건에는 Boolean으로 결과가 나오는 비교구문이 들어간다
펼치기조건문에서 어떻게 값을 반환하여 나타낼 수 있는지를 몰라서 혼자서 한참 고민했었는데 첫날 배웠던 return으로 조건문에 대한 값을 반환할 수 있었다.
두가지 조건이 한번에 적용되는 경우에는 논리연산자(Logical Operator)를 사용한다
// 학생이 아니면서, 여성일 때 통과
!isStudent && isFemale;
// ! 는 turhy와 falsy를 반전시킨다
펼치기
NOT연산자를 조금만 더 자세히 봤다면 조건문을 많이 쓰지 않고도 문제를 해결할 수 있었다.
기억해야할 falsy값 6개가 있는데, 아래와 같다.
If (false)
If (null)
If (undefined)
If (0)
If (NaN) ///not a number
if(‘’) ///빈 string
펼치기
NaN의 경우 isNaN()의 매개변수가 숫자인지 검사하는 함수로 검출할 수 있었다.
a === NaN ///이때는 검출되지 않는다
isNaN(a) === true ///일 때, 검출된다
이 외에도 Math.floor 소수점 아래를 버리는 함수, Math.abs 절대값을 구하는 함수
str.slice, str.length를 적절히 사용하여 문제를 풀 수 있었다.
마지막으로, Boolean값을 결과로 나타내야 하는 경우에는 조건문을 쓰지 않고 바로 return을 통해서 결과값을 나타낼 수 있다