JavaScript에서는 자동 및 명시적으로 형 변환이 일어날 수 있습니다. 이러한 형 변환은 주로 undefined와 null 값과의 상호 작용 중에 발생합니다. undefined와 null은 JavaScript에서 특별한 값으로 간주되며, 다른 데이터 유형과의 형 변환에 영향을 미치는 경우가 많습니다.
1. 자동 형 변환
1.1. undefined에서의 자동 형 변환
undefined는 값이 할당되지 않은 변수를 참조할 때 발생합니다.
예를 들어, 다음과 같은 코드가 있다고 가정해 봅시다:
let undefinedValue;
console.log(undefinedValue); // 출력: undefined
undefined를 다른 데이터 유형과 연산하면 자동으로 형 변환이 발생합니다.
let num = 10 + undefined;
console.log(num); // 출력: NaN
undefined와 다른 데이터 유형을 더하면 NaN(Not a Number)이 반환됩니다.
1.2. null에서의 자동 형 변환
null은 의도적으로 비어 있는 값으로 사용됩니다.
undefined와 마찬가지로 null을 다른 데이터 유형과 연산하면 자동으로 형 변환이 발생합니다.
let num = 10 + null;
console.log(num); // 출력: 10
null과 다른 데이터 유형을 더하면 JavaScript는 숫자로 형 변환을 수행하여 계산합니다. null은 0으로 간주됩니다.
2. 명시적 형 변환
명시적 형 변환은 개발자가 의도적으로 값을 다른 데이터 유형으로 변환하는 작업입니다. JavaScript에서는 몇 가지 방법을 제공합니다.
2.1. String 변환
값을 문자열로 변환하려면 String()
함수를 사용하거나, 값에 .toString()
메서드를 호출합니다.
let num = 10;
let str = String(num);
console.log(typeof str); // 출력: string
let bool = true;
let strBool = bool.toString();
console.log(typeof strBool); // 출력: string
2.2. Number 변환
값을 숫자로 변환하려면 Number()
함수를 사용하거나, 값을 +
연산자와 함께 사용합니다.
let strNum = "10";
let num = Number(strNum);
console.log(typeof num); // 출력: number
let boolNum = true;
let numBool = +boolNum;
console.log(typeof numBool); // 출력: number
2.3. Boolean 변환
값을 불리언으로 변환하려면 Boolean()
함수를 사용하거나, 값을 논리 부정(!) 연산자와 함께 사용합니다.
let strBool = "true";
let bool = Boolean(strBool);
console.log(typeof bool); // 출력: boolean
let numBool = 0;
let boolNum = !numBool;
console.log(typeof boolNum); // 출력: boolean
결론
JavaScript에서 undefined와 null 사이에서 자동 및 명시적 형 변환을 다루는 법을 알아보았습니다. 이러한 형 변환은 값의 유형을 변경하거나 다른 유형과 연산을 수행할 때 중요합니다. 명시적 형 변환은 개발자가 값의 유형을 명확하게 지정하고 원하는 동작을 수행하는 데 도움을 줍니다.
자동 및 명시적 형 변환의 동작을 이해하는 것은 JavaScript 프로그래밍에서 오류를 방지하고 원활한 코드 실행을 도와줄 수 있습니다.
참고 자료
- MDN Web Docs - Type Conversions
- W3Schools - JavaScript Type Conversion
- JavaScript Info - Type Conversions