Type Conversions

holang-i·2021년 2월 26일
0
post-thumbnail
post-custom-banner

형변환에는 문자열 변환, 숫자 변환, 부울 변환이 있다.
객체에서 원시타입으로의 형변환도 있지만, 그 부분은 뒤에서 더 공부를 하고 정리해 볼 것이다.


String

문자열 변환은 문자열 형식의 값이 필요할 때 사용한다.

let result = true;
console.log(typeof result); // "boolean"
let str = String(result);
console.log(str); // "true"
console.log(typeof str); // "string"

let result2 = 7889;
console.log(typeof result2); // "number"
let str2 = String(result2);
console.log(str2); //"7889"
console.log(typeof str2); // "string"

Number

Number 객체는 숫자 값으로 작업을 할 수 있도록 해주는 wrapper 객체로
Number() 생성자를 통해 사용할 수 있다.

문자열로 감싸져있지만, 안에 값이 숫자일 경우 Number()를 통해 숫자로 타입이 변경되는 것을 확인할 수 있다.

let str1 = '12345';
let num1 = Number(str1);
console.log(num1); // 12345
console.log(typeof num1); // "number"

let str2 = '숫자12345';
let num2 = Number(str2);
console.log(num2); // NaN
console.log(typeof num2); // "number"

하지만 num2의 경우 Number()로 형변환을 하면서 바로 NaN이라는 결과가 출력된다. NaN은 Not a Number의 약자로 '숫자가 아님'을 나타낸다.

한가지 더 알아두면 좋은 점은 숫자 변환은 수학 함수, 표현식에서 자동으로 변환된다.

let result = "8" / "4"; //2

숫자로 변환했을 때 나오는 값들에 대해서 알아보면

Number(undefined); // NaN
Number(null); // 0
Number(true); //1
Number(false); // 0
Number(""); //0
Number("7895"); //7895
Number("hello123"); //NaN
Number(""); // 0

눈여겨 봐야될 결과는 undefined의 경우 NaN이 되고, null의 경우 0이 된다.


Boolean

값이 있으면 true, 없으면 false라고 생각하면 된다.

0, 빈 문자열, null, undefined, NaN, false의 경우는 false로 값이 나오고, 그 외의 경우는 true가 된다.

Boolean(0); // false
Boolean(""); // false
Boolean(null); // false
Boolean(undefined); // false
Boolean(NaN); // false
Boolean(false); // false

Boolean("0"); // true
Boolean(123); // true
Boolean("false"); // true
Boolean(" "); // true

post-custom-banner

0개의 댓글