앞서 살펴 본 바와 같이 data type에는
number(숫자)데이터
string(문자)데이터
boolean(논리)데이터
undefined데이터
null 데이터가 있다.
자동 형변환(묵시적 타입 변환)
See the Pen javascript:data type by 정은 (@luchiaChoi) on CodePen.
위 예제처럼
문자데이터와 숫자데이터를 + 연산자를 이용하여 연산하게 되면 문자로 바뀌게 된다.
문자데이터("5")와 문자데이터("7") 를 + 를 제외한 나머지 연산자(-,*,/,%) 로 연산하게 되면 자동으로 숫자로 바뀌게 된다.
이를 자동 형 변환(묵시적 타입 변환) 이라 한다.
"5" - "3" = 2
string - string = number
* 원인을 찾기 힘든 error 를 발생시킬 수 있음.
특정 타입의 값을 기대하는 곳에 다른 타입의 값이 오면, 자동으로 타입을 변환해서 사용 "4" / "2" = 2
숫자로만 나누기 때문에 자동으로 숫자형으로 변환시켜 계산해준다.
See the Pen prompt 로 들어온 숫자의 자료형은? by 정은 (@luchiaChoi) on CodePen.
명시적 타입 변환 (대소문자 구분 주의)
타입 | 설명 |
Number() | 문자형을 숫자형으로 변환(정수/소수 모두) |
String() | 숫자나 불린등의 자료형을 문자형으로 변환 |
Boolean() | 문자형,숫자형 등의 자료를 불린 형으로 반환 0 제외 모든 값 true 반환 . 0 은 false 반환 |
Object() | 모든 자료형을 객체형으로 변환 |
parseInt() | 문자를 int형으로 변환(정수) |
parseFloat() | 문자를 float 형으로 변환(소수) |
let num = 10.123;
let str = "10.123";
let bool = (5 > 2);
console.log(typeof(String(num)) + num);
console.log(typeof(Number(str)) + str);
console.log(typeof(Boolean(num)) + bool);
console.log(typeof(Number(bool)) + bool);
console.log(parseInt(str));
console.log(parseInt(num));
console.log(parseFloat(str));
console.log(parseFloat(num));
See the Pen javascript data type conversion by 정은 (@luchiaChoi) on CodePen.
문자열 안에 문자가 있을 경우 숫자로 변환하려고 하면 NaN (Not a Number)이 반환된다. ex) Number(1als) -> NaN
숫자 0, 공백, null, undefined, NaN 은 모두 false 반환한다.
prompt 에서 취소 버튼을 누르면 null 이 된다. = 0 으로 반환된다.
Number(0) //false
Number('0') //true
Number('') //false
Number(' ') //true
'JAVASCRIPT' 카테고리의 다른 글
javascript 연산자 - 할당연산자 (0) | 2023.06.21 |
---|---|
javascript 연산자 - 비교연산자 (0) | 2023.06.21 |
javascript 연산자 - 산술연산자 (0) | 2023.06.13 |
javascript - data type (0) | 2023.06.13 |
JAVASCRIPT 변수 (0) | 2023.06.13 |