: Type Casting은 한 데이터 유형에서 다른 데이터 유형으로 데이터를 전송하는 것
: 암시적 변환은 컴파일러 또는 런타임이 데이터 유형을 자동으로 변환할 때 발생, 외에도 소스코드는 변환이 발생하도록 명시적으로 요구할 수 있음
Type Conversion vs Coercion
: 유형 강제 변환은 값을 한 데이터 유형에서 다른 데이터 유형으로 자동 또는 암시적으로 변환하는 것(ex: 문자열에서 숫자로)
: 유형 변환은 하나의 주요 차이점을 제외하고 한 데이터 유형에서 다른 데이터 유형으로 값을 변환하기 때문에 유형 강제 변환과 유사, 또한 암시적으로 변환
Explicit Type Casting
: 개발자가 의도를 가지고 소스코드 레벨에서 데이터 타입을 변환시키는 것
: 타입을 변경하는 기본적인 방법은 Object(), Number(), String(), Boolean() 와 같은 함수를 이용
var trans = 100; //Number
Object(trans); //100
console.log(typeof trans); //Number
String(trans); //”100"
console.log(typeof trans); //String
Boolean(trans); //true
console.log(typeof trans); //Bolean
JavaScript
복사
Implicit Type Casting
: 자바스크립트 엔진이 필요에 따라 자동으로 데이터 타입을 변환시키는 것
•
산술 연산자
: + 연산자는 숫자보다 문자열이 우선시 되기 때문에 숫자형이 문자형을 만나면 문자형으로 변환되어 처리
// 더하기(+)
number + number // number
number + string // string
string + string // string
string + boolean // string
number + boolean // number
50 + 50; //100
100 + “점”; //”100점”
“100” + “점”; //”100점”
“10” + false; //”100"
99 + true; //100
JavaScript
복사
: 다른 연산자는 숫자형이 문자형보다 우선시되므로 형변환이 발생하지 않는다.
•
동치 비교
: 아래 예제는 엄격하지 않은 동치 비교로 아래의 결과값은 좌우항 모두 변경할 경우 “0”은 0이기 때문에 모든 항목이 true다
null == undefined
“0” == 0
0 == false
“0” == false
JavaScript
복사
: 위의 비교는 엄격하지 않은 동치 비교일 경우이기 때문에, 두 값을 비교할 때 데이터타입을 변환하지 않는 엄격한 동치(===) 비교를 사용