Javascript 데이터 타입 변환
데이터 타입 변환
(데이터 타입 확인 방법은 전 게시글에 올린 typeof(변수명) 떠올리기 ^ㅇ^! )
- Javascript 데이터 타입을 변환하는 방법은 두 가지 방법이 있다.
-
- 암시적 변환
-
자바스크립트 엔진이 필요에 따라 자동으로 데이터타입 변환
-
- 명시적 변환
-
개발자가 의도를 가지고 데이터 타입 변환 ‘Object(), Number(), String(), Boolean()’와 같은 객체 함수 사용
-
I. 암시적 변환
- 암시적 변화란 연산 결과에 의해 데이터형이 자동으로 변화하는 것을 말한다.
- + 연산을 할 경우, 숫자와 문자열, 불리언과 문자열로 더할 경우 모두 문자열로 변환한 후 문자열로 연결됩니다. (숫자보다 문자열이 우선시)
// 더하기 (+)
console.log(10+11); //number + number = number(21)
console.log(10+"11"); //number + string = string(1011)
console.log("10"+"11"); //string + string = string (1011)
//문자열 + Boolean = 문자열
console.log("10"+true); //string + boolean = string (10true)
- 다른 연산자(-, *, /, %)는 더하기와 같은 문자형으로의 변환이 일어나지 않음 (문자열보다 숫자를 우선시)
- true == 1, false == 0
- null == 0
- ”” == 0
- 산술 연산 특이 (자동변환)
- true는 1, false는 0
- NaN은 NaN / undefined는 NaN
- null은 0
- ”“(빈 문자열)은 0
- console.log(true+true-false); //true(1)+true(1)-false(0) ⇒ 2
- console.log(1+null); //1+0 ⇒ 1
- 동치 비교(==)
- “0” == 0
- 0 == false
- “0”== false
II. 명시적 변환
- 명시적 변환이란 개발자가 의도적으로 데이터 타입을 변환하는 것
- Object(), Number(), String(), Boolean() 등의 매서드 사용
1. 문자열을 숫자로 변환 Number()
: 숫자로만 되어 있는 문자열을 숫자로 변환
- Number(변수명); Number 매서드 사용
<script>
const a = "234", b = "335", c="문자";
const sum1 = a + b ;
//Number(변수명); 숫자로만 되어 있는 문자열을 숫자로 변환
const sum2 = Number(a) + Number(b);
//결과 확인
console.log(sum1); //234335
console.log(sum2); //234+335 => 569
const total = Number(a) + Number(b) + Number(c);
console.log(total); // NaN(Not a number)
</script>
- parseInt()
- 정수형의 숫자로 변환
- parseFloat()
- 부동 소수점의 숫자로 변환
- 10진수 사용
2. 숫자를 문자열로 변환 String()
: 다른 데이터형을 문자열로 변환
- String(변수명/값); 매서드 사용
<script>
const a = "합계", b = 234, c = 654;
console.log(a+(b+c)); //합계888
//String(); 사용
console.log(a+(String(b)+String(c));//합계 234654
</script>
- toString(); 인자로 기수 선택 가능. 인자 전달 없을 시 10진수로 변환
var a = 100;
a.toString(); //"100"
a.toString(2); //"1100100" (2진수)
a.toString(3); //"144"(3진수)
- toFixed(); 인자값만큼 반올림하여 소수점 표현
- 5~9 : 올림
- 0~4 : 버림
var b = 123.456789;
var c = 19.987654;
b.toFixed(); //"123"
b.toFixed(0); //"123"
b.toFixed(1); //"123.4"
b.toFixed(2); //"123.46"
c.toFixed(2); //"19.99"
c.toFixed(0); //"20"
3. Boolean 타입으로 변환
- Boolean(); 매서드 사용
Boolean(100); //true
Boolean(“1”); //true
Boolean(true); //true
Boolean(Object); //true
Boolean([]); //true
Boolean(0); //false
Boolean(NaN); //false
Boolean(null); //false
Boolean(undefined); //false
Boolean( ); //false