if, else 예제 코드는 아래와 같다.
const birthYear = 2021;
let century;
if (birthYear <= 2000) {
century = 20;
} else {
century = 21;
}
console.log(century);
let century
를 if-else 블록 밖에 선언한 이유는 century가 코드 블록 안에 있을 때는 블록 밖에서 접근할 수 없기 때문이다. 변수는 선언된 블록(scope) 안에서만 접근할 수 있다. 따라서 century를 if-else 블록 밖에서 정의함으로써, 블록 밖에서도 century 변수에 접근할 수 있게 되는 것이다. 이렇게 하면 console.log(century)
로 값을 출력할 수 있다.
다음으로 Type Conversion에 대해 배워보자. Type Conversion은 우리가 수동적으로 한 타입을 다른 타입으로 바꾸는 것을 말한다.
예를 들어, 아래의 코드를 보자.
const inputYear = '1991';
console.log(inputYear + 18);
이렇게 결과가 199118
이 나온것을 볼 수 있다. 그 이유는 inputYear가 문자열이기 때문이다. 참고로, +
연산자는 문자열과 숫자를 더할 때 항상 문자열로 결과를 반환한다. 그래서 문자열 타입을 숫자 타입으로 바꿔줘야 한다. 바꾸는 방법은 다음과 같다.
const inputYear = '1991';
console.log(Number(inputYear));
console.log(inputYear + 18);
Number()
이 number type으로 바꾸어주는 역할을 한다.
type coercion 이란 자바스크립트가 자동으로 한 타입을 다른 타입으로 바꾸어 주는걸 말한다. 예를 들어서 아래의 코드를 보자.
console.log ('23' + '10' + 3);
+
연산자는 문자열과 숫자가 있을 때 숫자도 문자열로 자동 변환한다. 따라서 결과값은 23103
이 된다. 반대로, -
연산자는 문자열과 숫자가 있을 때 문자열을 숫자로 변환해서 계산한다. 아래의 코드를 보자.
console.log ('23' - '10' - 3);
여기서 23과 10은 문자열이지만 -
연산자는 숫자 연산을 해야 하므로 자바스크립트는 자동으로 문자열을 숫자로 변환한다. 따라서 23 - 10은 13이 되고, 여기서 3을 더 빼면 결과는 숫자 10이 된다.