[javascript] 타입변환

공수정·2022년 5월 11일
0

javascript

목록 보기
3/4

타입변환

자바스크립트 모든 변수에는 타입이 있는데, 이 타입을 개발자가 의도에 따라 의도적으로 값의 타입을 변환하면 명시적 타입 변환, 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 변환되는것을 암묵적 타입 변환이라고 한다.


암묵적 타입 변환

암묵적 타입 변환은 자바스크립트 엔진에 의해서 변환이 되는거라 개발자의 의지가 보이지 않고, 해당 표현식이 어떤 타입으로 변환 될 것인지, 그래서 표현식이 어떻게 평가 될 것인지에 대해 개발자가 예측해야한다.
이때 이러한 예측을 하지 못하거나 틀렸다면 오류를 발생할 확률이 높다.

var x = 1;
var str = x + ' ';
console.log(typeof str, str); // sring 1 -> 타입은 string, 값은 '1'

위와같이 x + ''이라는 식은 결국 1 + ' '인데, 이때 여기서의 1은 엔진에 의해 '1'로 변환이 되고, '1'+ ' '으로 계산된다.

하지만 이때 '1'로 변환된 값이 다시 x에 재할당 되지는 않는다.


문자열 타입으로 변환

  • 숫자 타입 : (숫자 타입 변수) +''
  • 불리언 타입 : (불리언 타입 변수) +''
  • null 타입 : (null 타입 변수) +''
  • undefined 타입 : (undefined 타입 변수) +''
  • 객체 타입
({}) + ''; //"[object Object]"
Math + ''; //"[object math]"
[] + ''; // ""
[1,2] + ''; // "1,2"
(function(){}) + '';  //"function(){}"
Array + ''; //"function Array(){native code}"

숫자 타입으로 변환

+ 변수 형식으로 사용

+'' // 0
+'0' // 0
+'1' // 1
+'string' // NaN
+true// 1
+false//0
+null//0
+undefined //NaN
+Symbol()// TypeError
+{} //NaN
+[] // 0
+[1,2] //NaN
+(function(){}) // NaN

불리언 타입으로 변환

if(변수) 형식으로 사용

// true
if(true) 
if('str')

// false
if('')
if(0) 
if(null) 

비교 연산자 사용

'1' > 0 // true

명시적 타입 변환

명시적 타입 변환은 타입을 변경하려는 개발자의 의지가 명확히 들어난다.


문자열 타입으로 변환

  • String(변수)사용
  • (변수).toString()사용

숫자 타입으로 변환

  • Number(변수) 사용
  • parseInt(변수) 사용 : 문자열만 가능
  • parseFloat(변수) 사용 : 문자열만 가능

불리언 타입으로 변환

  • Boolean(변수) 사용
  • 논리 부정 연산자 두번 사용

profile
계속해서 공부하는 개발자입니다 :)

0개의 댓글