[JavaScript] 동적 형 지정 / 자동 형 변환

동적 형 지정 / 자동 형 변환

JavaScript 데이터 유형 변환

JavaScript는 동적 형지정 언어이다. (대표적인 동적 형 지정 언어: JavaScript, Python)

var total = 1456;
var current = 10;
var message = '동적 형 지정언어 JavaScript';
var show = false;

위 변수에는 어떤 데이터 형도 올 수 있으며, 필요에 따라 자동으로 형이 변경된다. (장점이자 단점)

대표적인 정적 형 지정 언어: C, Java

Typescript는 정적 형 지정 언어처럼 사용이 가능하며, 지정 후 JavaScript로 변환된다. 정적 형 지정언어의 장점은 디버깅이 유용한 것이다.

JavaScript의 형 변환

var n = 9;
var m = 'hi good job';
n + m
> "9hi good job"

9라는 숫자 데이터 형이 자동으로 스트링 형으로 변경되는 상황을 확인할 수 있다.

숫자 값이 문자로 변경되는 경우

String(숫자)
숫자 + ''

숫자형 문자 값이 숫자로 변경되는 경우

var k = '12345' // k 의 값 선언

Number(k)
+k
k - 0
k * 1
k / 1

명시적으로 Number(숫자 데이터) 와 같이 작성하는것이 바람직하다.

k + 'px' // '12345px'이 되며, k에 이 값을 다시 대입하고 싶은 경우 아래와 같이 작성한다
k = k + 'px' // 이 경우 k의 값에 '12345px' 이 대입 된다

이후 k는 숫자 형 데이터가 아닌 문자 형 데이터가 된다

Number(k);
> NaN

NaN = Not a Number

문자 값을 숫자로 변경해야 하는 경우

window.parseInt(문자,10)
window.parseFloat(문자,10)

Integer: 정수

Float: 실수(소수를 포함)

불리언 값으로 변경하는 경우

Boolean(데이터유형)
!!데이터유형
Boolean(1)
> true
Boolean(-1)
> true
Boolean(0)
> false
0 == false
> true

0은 자동으로 불리언의 false 로 형변환이 이루어진다.

0,'' (빈 문자열), null, undefined 는 부정을 의미하며 불리언값의 false로 변환되게 된다.

함수function(){}, 배열 [0, 1, 2], 객체 {object} 는 존재한다고 인식하며 true로 변환된다.

참고