본문 바로가기
Programming/Javascript

[Javascript] 형변환

by 콩king 2022. 6. 15.
● 형변환 : 자료형을 변환하는 방법

정말 많이 에러를 발생하는 원인 중에 하나인 부분

 

● javascript : 자동으로 타입을 할당함

 var i = 1;      //자동으로 숫자형으로 할당

 var j = "1";    //자동으로 문자열형으로 할당

● 자동 형변환 (묵시적 타입 변화)

+ 제외한 사칙 연산일 경우 >> 숫자만 들어있는 문자일 경우 자동으로 숫자로 변환 

 

<산술 연산자>

더하기(+) 연산자는 숫자보다 문자열("")이 우선시 됨.(문자 > 숫자)

숫자형이 문자형을 만나면 문자형으로 변환되어 글자가 합쳐짐.


<다른 연산자( - , * , / , % )>

숫자형이 문자형보다 우선시 됨.(문자 < 숫자)

console.log(i + j);     // 1 + "1" : 숫자 + 문자 = 11
console.log(i * j);     // 1 * "1" : 숫자 * 문자 > 변환 > 1*1=1
console.log(i - j);     // 1 - "1" : 숫자 - 문자 > 변환 > 1-1=0
console.log(i * "문자") // Nan : Not a Number : 숫자가 아니다(Error의 종류)
console.log(i * "문자1")

 

 

● 명시적 타입 변환 (형변환을 우리가 직접 정의)

 

Number() : 숫자로만 작성된 문자를 정수형과 실수형의 숫자로 변환

String() : 문자타입으로 변환

Boolean() : 불리타입으로 변환  >>  true =1, false =0 을 의미

parseInt() : 정수형 숫자로 변환 >> 숫자+문자 섞여있을 경우 숫자가 앞에 있는 경우만 변환

parseFloat() : 부동소수점의 숫자로 변환. 실수형으로 변환.

 

● 예제 (문자 >> 숫자)
    console.log(typeof "10");					// "10"은 String입니다.
    console.log(typeof Number("10"))        	// 형변환 : 문자 > 숫자로 형변환
    console.log(10 + "10")                  	// 1010 > string
    console.log(10 + Number("10"))          	// 20	> number
    console.log(10 + Number("ten10"))       	// NaN - 숫자로 바꿀수 있는 것만 바꿔줌

    console.log(Number.parseInt("10"))      	// 10 : 정수형
    console.log(Number.parseFloat("10"))    	// 10 : 실수형
    console.log(Number.parseInt("10.23"))   	// 10 : 정수형(소수점 없음)
    console.log(Number.parseFloat("10.23")) 	// 10.23 : 실수형(소수점 있음)

    /*예외*/
    console.log("예외")
    console.log(Number("10문자열"))             // NaN > 간단하게 하는 방법 : 예외처리 못함
    console.log(Number.parseInt("10문자열"))    // 10 > 처음 글자가 숫자일 경우는 변환해줌
    console.log(Number.parseFloat("10문자열"))  // 10
    console.log(Number.parseInt("문자열10"))    // NaN
    console.log(Number.parseFloat("문자열10"))  // NaN

 

● 예제  (숫자 > 문자)
console.log(String(10));            // 10
console.log(typeof String(10));     // string
console.log(10 + String(10));       // 20 > 1010

 

 

● 예제 (Boolean : 참(true, 1) 거짓(false, 0))
console.log(true);                  // ture
console.log(String(true));          // true
console.log(Number(true));          // 1 : true
console.log(Number(false));         // 0

 

 

● 예제 (변수 형변환)
var i= 0;
console.log(i);                     // 0
console.log(typeof i);              // number
console.log(typeof String(i));      // string
console.log(typeof Boolean(i));     // bolean
console.log(Boolean(i));            // false

 

 

●  예제
var s = "true"
console.log(typeof s);              // string
console.log(Number(s));             // NaN : 숫자가 아닌데?
console.log(Boolean(s));            // true
console.log(typeof Boolean(s));     // boolean

 

● 예제
/* true를 숫자 1로 바꾸고 싶다 */
// Boolean(s) : "true"를 불리언 자료형으로 변경 : true 참으로 변경
// Numbaer(true) : true는 숫자 1로 변경

console.log(Number(Boolean(s))); 	   // 1

'Programming > Javascript' 카테고리의 다른 글

[Javascript] 배열  (0) 2022.07.11
[Javascript] 반복문 - while문 do~while문  (0) 2022.06.22
[Javascript] 반복문 - for문  (0) 2022.06.22
[Javascript] 조건문 - switch문  (0) 2022.06.15
[Javascript] 조건문 - if문  (0) 2022.06.14

댓글