Javascript | typeconversion(형 변환)

자바스크립트로 코드를 작성하다 보면 필요에 따라서 타입이 변환 되어야 합니다.

암시적 형 변환

형변환이 필요할 때 형변환을 위한 코드를 입력하거나 표기 하지 않아도 자바스크립트 엔진이 자동으로 형 변환을 해줍니다.

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(); // "372"
var flag = new Boolean(true);
falg.toString(); // "true"

문자열에 포함 된 소수점 자리 수(반올림)나 지수 표기법 사용 여부등을 지정할 수 있는 방법이 있습니다.

1
2
3
4
5
6
7
8
9
10
11
var name = 372.72;
name.toFixed(0); // '372'
name.toFixed(1); // '372.7' => 인자 값이 소수점 자리 수
name.toExponential(); // '3.7272e+2' => 부동소수점 수 지수 형태 문자열로 변환
name.toExponential(2); // '3.72e+2' => 인자 값이 소수점 자리 수
name.toPrecision(2); // '3.7e+2' => 인자 값이 유효 자리 수로 문자열로 표현
name.toPrecision(1); // '4e+2'
name.toPrecision(5); // '372.72'
name.toPrecision(3); // '373'

web javascript