Elegant Developer

javaScript - 형 변환(Type Conversion) 본문

FrontEnd/javaScript

javaScript - 형 변환(Type Conversion)

혀니D 2017. 8. 28. 17:04

javaScript - 형 변환(Type Conversion)



형변환에는 다음과 같이 두가지가 있습니다.

1. 암시적 변환(Explicit)

2. 명시적 변환(Implicit)


암시적 변환(Implicit)

자바스크립트 엔진이 필요해 따라 암시적으로 형(데이터타입)을 자동으로 변환시키는 것입니다.

                                                                    • 산술 연산자

                                                                    • 동등 비교


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// 엔진에 의해 자동적으로 형변환하는 것을 '암시적(Explicit) 변환'이라고 한다.
 
// 산술 연산자
// 더하기 ( + )
number + string  // string
string + string  // string
number + number  // number
 
// 더하기 외 ( *, /, -, % )
string * number  // number
string * string  // number
number * number  // number
 
// 동등비교
true == 1;    // true는 1로 변환
false == 0;   // false는 0으로 변환
'1' == true;  // '1'은 true로 변환
'1' == 1;     // '1'은 1로 변환
 
// Boolean 변환
null == undefined; // false
'0' == 0;          // true (string이 숫자 0으로 변환)
0 == false;        // true (Boolean은 비교하기 전, 숫자로 변환)
'0' == false;      // true (Boolean은 비교하기 전, 숫자로 변환)
 
 
// ===================================================
 
// 예시
= 1 + true;      // 2
= 1 + false;     // 1
= 1 - true;      // 0
= 1 - false;     // 1
= 1 * true;      // 1
= 1 * false;     // 0
= 1 / true;      // 1
= 1 / false;     // Infinity
= 1 % true;      // 0
= 1 % false;     // NaN
 
// 더하기 ( + )
= '1' + '2'      // 12
= 1 + '2'        // 12
= 1 + 2          // 3
 
// 더하기 외 ( *, /, -, % )
= '1' * '2'      // 2
= 1 * '2'        // 2
= 1 * 2          // 2
 
 
cs



명시적 변환(Explicit)

개발자가 스크립트를 이용해서 원하는 형으로 변환할 지를 명시해주는 것이다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 개발자가 스크립트를 이용하여 자신이 원하는 형으로 명시하는 것을 '명시적(Explicit) 변환'이라고 한다.
 
// 1. Object(), String(), Number(), Boolean()
 
var hyeoni = 100;   // << 기본 Number Type
Object(hyeoni);
console.log(typeof hyeoni); // object : number
 
String(hyeoni);
console.log(typeof hyeoni) // String
 
Boolean(hyeoni);
console.log(typeof hyeoni); // true
 
 
var hyeoni = '100'// << 기본 String Type
Object(hyeoni);
console.log(typeof hyeoni); // object : string
 
Number(hyeoni);
console.log(typeof hyeoni);  // Number
 
Boolean(hyeoni);
console.log(typeof hyeoni); // true
 
 
cs



parseInt(), parseFloat()


dparseInt나 parseFloat의 목적은 정수나 실수로 파싱해주는 것이다.

파싱을 하면서 Number로 형변환이 된다.


1
2
3
4
5
6
7
8
9
10
// 2. parselnt(string, ragix), parseFloat(string)
parseInt("123.456");   // 123 
parseInt("123km");     // 123
parseInt("w123");     // NaN
 
parseFloat("123.456"); // 123.456
parseFloat("w123");    // NaN
parseFloat("05");     // 5
 
 
cs



편법으로 형변환


Numbet > String, String >> Number


1
2
3
4
5
6
7
8
9
10
11
// number >> string
var aa_s = 100;
aa_s += "";
console.log(typeof aa_s);  // string
 
// string >> number   더하기( + )제외한 모든 
var aa_n = '100';
aa_n *= 1;
console.log(typeof aa_n);  // number
 
 
cs






























Comments