● 형변환 : 자료형을 변환하는 방법
정말 많이 에러를 발생하는 원인 중에 하나인 부분
● 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 |
댓글