데이터 형변환
자바스크립트에는 기본적으로 변수에는 데이터 타입이 없으며, 값에 따라 자동으로 데이터 타입이 결정된다. 이를 동적 타이핑이라고 한다.
let a = 1;
console.log(typeof a, a); // number 1
a += "hello";
console.log(typeof a, a); // string 1hello
a = true;
console.log(typeof a, a); // boolean true
=> 자바스크립트에서는 데이터 타입이 없기 때문에, 변수에 값을 할당할 때마다 데이터 타입이 변경된다.
위 예제에서 a는 처음에 number 타입이었지만, 문자열을 더하면서 string 타입으로 변경되었다. 그리고 true를 할당하면서 boolean 타입으로 변경되었다.
위 코드의 a+= "hello"는 a = a (1) + "hello" (문자열) 을 더했는데, 어떻게 1hello 가 되었을까?
이는 암시적 형변환이 일어났기 때문이다.
암시적 형변환 (Implicit Type Conversion)
자바스크립트에서는 직접적으로 데이터 타입을 변환하지 않아도, 암시적으로 데이터 타입이 변환되는 경우가 있다.
위의 1hello 예제에서 1 + "hello"가 되는 것이 바로 암시적 형변환이다.
암시적 형변환이 일어나는 경우
- 문자열 연결 연산자 (+)를 사용할 때
let a = 1;
let b = "hello";
let c = a + b;
console.log(typeof c, c); // string 1hello
- Equality 연산자 (==)를 사용할 때
let a = 1;
let b = "1";
console.log(a == b);
// true
명시적 형변환 (Explicit Type Conversion)
명시적 형변환은 개발자가 직접 데이터 타입을 변환하는 것을 말한다.
명시적 형변환 방법
- Number(), parseInt(), parseFloat()
=> 문자열을 숫자로 변환
let a = "1";
console.log(Number(a)); // 1
console.log(parseInt(a)); // 1
console.log(parseFloat(a)); // 1
- String(), toString()
=> 숫자를 문자열로 변환
let a = 1;
console.log(String(a)); // "1"
console.log(a.toString()); // "1"
- Boolean()
=> 숫자, 문자열, null, undefined, NaN, 0, ""을 제외한 모든 값은 true로 변환된다.
let a = 1;
let b = "hello";
let c = null;
console.log(Boolean(a)); // true
console.log(Boolean(b)); // true
console.log(Boolean(c)); // false
Reference
'Javascript' 카테고리의 다른 글
[ JavaScript ] 자바스크립트 메모리 관리 (0) | 2023.01.17 |
---|---|
[ JavaScript ] map, forEach, reduce (0) | 2023.01.17 |
[ Javascript ] 불변성을 유지하는 방법 (0) | 2023.01.17 |
[ Javascript ] Ajax 란 무엇인가 (0) | 2023.01.17 |
[ Javascript ] This 란 무엇인가? (0) | 2023.01.17 |