404 page not found : 기록장

[Javascript] 형 변환 본문

JAVASCRIPT

[Javascript] 형 변환

Hannah_J 2023. 3. 15. 12:50

자바스크립트에서는 다양한 자료형을 다룰 수 있습니다. 때로는 서로 다른 자료형을 연산하거나 비교해야 할 때가 있습니다. 이때 자동 형 변환이 일어나기도 하지만, 명시적으로 형을 변환해주는 것이 더욱 안전하게 코드를 작성할 수 있습니다.

문자열로 변환

숫자나 불리언 값 등을 문자열로 변환하려면, 각 값의 toString() 메소드를 사용하면 됩니다.

let num = 123;
let booleanValue = true;

console.log(num.toString()); // "123"
console.log(booleanValue.toString()); // "true"

숫자로 변환

문자열을 숫자로 변환하려면 parseInt()나 parseFloat() 메소드를 사용합니다.

let strNum = "456";
let strFloat = "3.14";

console.log(parseInt(strNum)); // 456
console.log(parseFloat(strFloat)); // 3.14

아래는 숫자형으로 변환 시 적용되는 규칙입니다.

전달받은 값 형 변환 후

undefined NaN
null 0
true and false 1 과 0
string 문자열의 처음과 끝 공백이 제거됩니다. 공백 제거 후 남아있는 문자열이 없다면 0, 그렇지 않다면 문자열에서 숫자를 읽습니다. 변환에 실패하면 NaN이 됩니다.

불리언 값으로 변환

자바스크립트에서 falsy한 값들은 false로, truthy한 값들은 true로 변환됩니다. falsy한 값에는 0, "", NaN, null, undefined 등이 있습니다.

console.log(Boolean(0)); // false
console.log(Boolean("")); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false

console.log(Boolean(1)); // true
console.log(Boolean("hello")); // true
console.log(Boolean({})); // true

예외 상황

형 변환에서 주의해야 할 점은 다음과 같습니다.

console.log(4 + "5"); // "45"
console.log("4" - 2); // 2
console.log("hello" * 2); // NaN

위 예시 중 첫 번째와 같이 문자열과 숫자를 더하면, 숫자가 문자열로 변환되어 두 문자열이 이어져 나타나게 됩니다. 두 번째 예시와 같이 문자열에서 숫자를 빼면, 문자열이 숫자로 변환되어 계산됩니다. 하지만 세 번째 예시와 같이 문자열과 숫자를 곱하면, NaN(Not a Number)이 반환됩니다.

형 변환을 사용할 때는 이런 예외 상황을 잘 고려해야 합니다.