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은 비교하기 전, 숫자로 변환) // =================================================== // 예시 a = 1 + true; // 2 b = 1 + false; // 1 c = 1 - true; // 0 d = 1 - false; // 1 e = 1 * true; // 1 f = 1 * false; // 0 g = 1 / true; // 1 h = 1 / false; // Infinity i = 1 % true; // 0 j = 1 % false; // NaN // 더하기 ( + ) a = '1' + '2' // 12 b = 1 + '2' // 12 c = 1 + 2 // 3 // 더하기 외 ( *, /, -, % ) d = '1' * '2' // 2 e = 1 * '2' // 2 f = 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 |