- 함수와 연산자에 전달되는 값은 대부분 적절한 자료형으로 자동 변환됩니다. 이런 과정을 "형 변환(type conversion)"이라고 합니다.
- 전달받은 값을 의도를 갖고 원하는 타입으로 변환(명시적 변환)해 주는 경우도 형 변환이라고 할 수 있습니다.
문자형으로 변환
- 문자형으로의 형 변환은 문자형의 값이 필요할 때 일어납니다.
let value = true;
alert(typeof value); // boolean
value = String(value); // 변수 value엔 문자열 "true"가 저장됩니다.
alert(typeof value); // string
- false는 문자열 "false"로, null은 문자열 "null"로 변환되는 것과 같이, 문자형으로의 변환은 대부분 예측 가능한 방식으로 일어납니다.
- 다른 방법으로는
- toString()
- String()
- Template String (템플릿 문자열)
- 빈 문자열 이어붙이기
숫자형으로 변환
- 숫자형으로의 변환은 수학과 관련된 함수와 표현식에서 자동으로 일어납니다.
- 숫자형이 아닌 값에 나누기 /를 적용한 경우와 같이 말이죠.
alert( "6" / "2" ); // 3, 문자열이 숫자형으로 자동변환된 후 연산이 수행됩니다.
- 숫자형 변환의 방법으로는
- 1. Number()로 문자열을 숫자로 변환
- 2. parseInt()로 문자열을 숫자로 변환
- 3. parseFloat()로 문자열을 숫자로 변환
-
- Math로 문자열을 숫자로 변환
- 숫자 이외의 글자가 들어가 있는 문자열을 숫자형으로 변환하려고 하면, 그 결과는 NaN이 됩니다.
let age = Number("임의의 문자열 123");
alert(age); // NaN, 형 변환이 실패합니다.
불린형으로 변환
- 이 형 변환은 논리 연산을 수행할 때 발생합니다.
- Boolean(value)를 호출하면 명시적으로 불리언으로의 형 변환을 수행할 수 있습니다.
- 숫자 0, 빈 문자열, null, undefined, NaN과 같이 직관적으로도 “비어있다고” 느껴지는 값들은 false가 됩니다.
- 그 외의 값은 true로 변환됩니다.
alert( Boolean(1) ); // 숫자 1(true)
alert( Boolean(0) ); // 숫자 0(false)
alert( Boolean("hello") ); // 문자열(true)
alert( Boolean("") ); // 빈 문자열(false)
요약
문자형으로 변환 은 무언가를 출력할 때 주로 일어납니다. String(value)을 사용하면 문자형으로 명시적 변환이 가능합니다. 원시 자료형을 문자형으로 변환할 땐, 대부분 그 결과를 예상할 수 있을 정도로 명시적인 방식으로 일어납니다.
숫자형으로 변환 은 수학 관련 연산시 주로 일어납니다. Number(value)로도 형 변환을 할 수 있습니다.
불린형으로 변환 은 논리 연산 시 발생합니다. Boolean(value)으로도 변환할 수 있습니다.
형 변환 시 적용되는 규칙 대부분은 이해하고 기억하기 쉬운 편에 속합니다. 다만 아래는 예외적인 경우이기 때문에 실수를 방지하기 위해 따로 기억해 두도록 합시다.
- 숫자형으로 변환 시 undefined는 0이 아니라 NaN이 됩니다.
- 문자열 "0"과 " "같은 공백은 불린형으로 변환 시 true가 됩니다.
'모던 javascript 튜토리얼' 카테고리의 다른 글
비교 연산자 (0) | 2022.06.03 |
---|---|
기본 연산자와 수학 (0) | 2022.06.02 |
alert, prompt, confirm을 이용한 상호작용 (0) | 2022.05.31 |
변수와 상수, 자료형 (0) | 2022.05.30 |
엄격 모드 (0) | 2022.05.30 |