자바스크립트로 코드를 작성하다 보면 필요에 따라서 타입이 변환 되어야 합니다.
암시적 형 변환
형변환이 필요할 때 형변환을 위한 코드를 입력하거나 표기 하지 않아도 자바스크립트 엔진이 자동으로 형 변환을 해줍니다.
1 2 3 4 5 6 7 8 9 10 11 12
| 3 + "72" // 75 "3" + 72 // 75 "3" * "7" // 21 3 + "치리" // 3치리 true + 10 // 21 => true(1), false(0) 으로 변환 됩니다. true < false // false "" + 10 // 10 => ""는 0으로 변환 됩니다. true + " or false" // true or false var num = 10 - '삼'; // NaN(No a Number) 리턴 합니다. num + "치리" // NaN치리 => NaN은 문자열로 처리 됩니다.
|
null / undefined 는 변환이 되지 않습니다.
명시적 형 변환
코드 가독성은 유지 보수의 용이와 비례합니다. 명시적으로 형 변환을 표시 할 경우에는 코드의 가독성이 높아지기에 형 변환은 명시하는 것은 유지보수에 용이하다고 볼 수 있습니다.
Number(), String(), Boolean(), Object()
를 활용하여 형 변환하는 방법이 있습니다.
1 2 3 4 5 6 7
| Number("372") // 372 String(true) // true Boolean(0) // false Object(372) // Number {[[PrimitiveValue]]: 372} Object(true) // Boolean {[[PrimitiveValue]]: true} Object("372") // String {0: "3", 1: "7", 2: "2", length: 3, [[PrimitiveValue]]: "372"}
|
문자와 숫자(정수, 실수)의 형 변환
parseInt(string,radix), parseFloat(string)
를 활용하면 됩니다. radix(기수)
는 형 변환시의 지수(2~36 진수 가능) 입니다.
1 2 3 4 5 6 7 8 9 10 11 12
| parseInt("372입니다"); // 372 parseInt(372.72); // 372 parseInt("$372"); // NaN => 첫 문자가 숫자가 아닐 경우 parseInt(0.372); // 0 parseInt(.372); // 0 parseInt(0372); // 250 => 0으로 시작하는 숫자는 8진수로 인식 parseInt(372, 8); // 250 parseInt(372, 10); // 372 parseInt(372, 16); // 882 parseFloat("372.72"); // 372.72 parseFloat("372.72abc"); // 372.72
|
null / undefined 를 제외한 타입은 toString()
메서드를 통해서 문자열로 변환할 수 있습니다.
1 2 3 4 5
| var name = 372; name.toString(); var flag = new Boolean(true); falg.toString();
|
문자열에 포함 된 소수점 자리 수(반올림)나 지수 표기법 사용 여부등을 지정할 수 있는 방법이 있습니다.
1 2 3 4 5 6 7 8 9 10 11
| var name = 372.72; name.toFixed(0); name.toFixed(1); name.toExponential(); name.toExponential(2); name.toPrecision(2); name.toPrecision(1); name.toPrecision(5); name.toPrecision(3);
|