1. 비교 연산자 : 크다(>), 작다(<), 크거나 같다(>=), 같다(===) 등 비교할 때 쓰는 연산자이다. Boolean 값을 반환한다.
반환이 된다는 것은 변수 등에 할당할 수 있다는 것을 의미한다.
1
2
|
console.log(1 > 2)
//콘솔에 false가 찍힘.
|
cs |
*주의 사항 : 동등 비교 연산자(==) 사용 시 다른 자료형임에도 true를 반환할 수도 있음!
따라서 일치 연산자(===)를 사용하는 것이 좋다.
일치 연산자를 좀 더 엄격한 동등 비교 연산자라고 생각하면 된다.
마찬가지로 부등 연산자(!=)보다는 불일치 연산자(!==)를 사용할 것!
* 왜 동등 비교 연산자와 부등 연산자의 사용을 지양하라는 걸까?
불명확한 비교는 추후에 에러를 발생시킬 수도 있기 때문
1
2
3
4
5
6
7
8
9
10
11
|
let zero = 0;
let False = false;
function notGoodSituation(zero, False) {
if (zero == False) {
return "동등 연산자를 사용하면 숫자 0과 불리안 false를 같다고 봅니다";
}
}
let expected = notGoodSituation(zero, False)
console.log(expected) // 동등 연산자를 사용하면 숫자 0과 불리안 false를 같다고 봅니다
|
cs |
2. 논리 연산자 : &&(AND), ||(OR), !(NOT)
피연산자로 불린값 뿐만 아니라 모든 타입의 값을 받을 수 있다.
그렇다면 만약 불린값이 아닌 다른 타입이 피연산자로 오면 논리 연산자는 어떤 식으로 판단하는 걸까?
결과부터 말하자면 Truthy한 값은 True로 처리되고, Falsy한 값은 False로 처리되는데 이 개념은
4번에서 구체적으로 살펴보도록 하자.
1
2
3
4
5
6
7
8
9
10
11
12
|
console.log(true || false) // 하나라도 true면 true
console.log(true || false)
console.log(true || true)
console.log(false || false) // 피연산자가 둘 다 false면 false
console.log(true && false) // 하나라도 false면 false
console.log(true && false)
console.log(false && false)
console.log(true && true) // 둘 다 true면 true
console.log(!true) // not연산자가 있으므로 false
console.log(!false) // not연산자가 있으므로 true
|
cs |
3. 조건문 : 조건에 따라 다른 행동을 취해야 할 때 사용한다.
3 - 1) if문 : 말 그대로 만약에 어떠한 조건이 참이면 해당 동작을 수행하고 거짓이라면 다른 동작을 수행하는 구문이다.
구구절절하게 설명하기보다 예시를 통해 이해하면 좋을 것 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
//매개변수의 값이 50이상이면 true반환하고
//50보다 작으면 false를 반환하는 함수가 있다.
function isTrueUp50AndIsFalseUnder50(num) {
if (num >= 50) {
//()안의 조건 num이 50 이상이면 true를 반환
return true;
} else if (num < 50) {
//그렇지 않고 조건 num이 50보다 작으면 false를 반환
return false;
} else {
//매개변수 num이 숫자형이 아닌 다른 자료형이 들어온다면 '숫자를 입력해주세요!'를 반환
return '숫자를 입력해주세요!'
}
}
|
cs |
if문을 통해 주어진 조건에 따라 다른 동작을 수행하는 것을 볼 수 있다. 꼭 어떤 값을 반환할 필요는 없다.
사용자가 주어진 조건에 따라 하고싶은 동작을 구현하면 된다. 위의 예시는 크게 3가지 동작을 수행하는데
몇 가지 동작을 수행할 것인지 결정하는 것은 개발자의 마음이다. 만약 2가지 동작을 수행하고 싶다면
중간에 구문인 else if 가 없어도 될 것이다.
3 - 2) '?' 조건부 연산자 : 조건부 연산자를 사용하면 if문을 더욱 간단하게 작성할 수 있다.
문법은 다음과 같다 -> (평가 대상) ? : 참일 때 반환할 값 : 거짓일 때 반환할 값;
마찬가지로 예시를 통해 좀 더 구체적으로 알아보자
1
2
3
4
5
6
7
|
let accessAllowed = (age > 18) ? true : false;
// (age > 18) => 평가대상
// ? 뒤 => 평가대상이 참이면 true 를 반환한다
// : 뒤 => 평가대상이 거짓이면 false를 반환한다
//만약 let age = 39 라면 이 때 accessAlloewd에 할당되는 값은 true가 될 것이다
//반환할 값은 무엇이든 가능하다 불리안 값이던, 어떤 변수던, 문자열이 될 수도 있다.
|
cs |
4. Truthy & Falsy : Truthy는 true로 처리될 수 있는 값이고 Falsy는 false로 처리될 수 있는 값이라고 이해하면 된다.
그렇다면 truthy는 true이고 falsy는 false인 것일까? 그렇진 않다. 원빈과 장동건 둘 다 잘생겼지만
둘이 같은 사람은 아닌 것처럼.. 그렇다면 어떤 것이 truthy한 값이고 falsy한 값인가?
자바스크립트에서 falsy한 값은 6개이고 나머지는 모두 truthy한 값이다. 때문에 6개만 외워두면 된다.
실제 코드를 통해 어떻게 처리 되는지 살펴보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//Falsy한 값 6가지
console.log(!NaN)
console.log(!0)
console.log(!undefined)
console.log(!null)
console.log(!'')
console.log(!false)
//모두 falsy한 값이므로 !연산자를 붙이면 콘솔에 true가 찍힘!
//그 외의 모든 것은 truthy이다
console.log(!"a")
console.log(!3)
console.log(![3, 4])
//모두 truthy 하므로 !연산자를 붙이면 콘솔에 false가 찍힘!
|
cs |
크롬 개발자 도구를 통해 위의 코드를 꼭 확인했으면 좋겠다.
그렇다면 만약 3번에서 배운 if문의 조건이 들어가는 곳에 truthy 한 값이 들어오거나 falsy한 값이 들어오면 어떻게 될까?
truthy는 true로 처리되고 falsy는 false로 처리되므로 조건이 truthy하면 참으로 인식해 참이 될때의 동작을 수행할 것이고
falsy하면 거짓으로 인식해 else 문의 동작이 수행될 것이다!
포스팅이 길어지므로 조건문과 조건부 연산자를 활용해 truthy와 falsy한 값이 조건으로 주어질 때의 예제는 직접 확인해보도록 하자!
'Programming Language > Javascript' 카테고리의 다른 글
Closure (0) | 2020.11.04 |
---|---|
Scope (0) | 2020.11.04 |
2020/09/30 - JS - 반복문 (0) | 2020.09.30 |
2020/09/18 - JS - 문자열과 관련 메소드 (0) | 2020.09.18 |
2020/09/15 - JS - 변수, 함수, 자료형 (0) | 2020.09.15 |