JS - 동적타이핑(Dynamic typing)

JUGNMIN LEE·2020년 12월 24일

javascript

목록 보기
2/13
post-thumbnail

동적 타이핑 (Dynamic Typing)


또한 자바스크립트는 동적 타입의 언어이기도 하다. 이것은 변수의 타입 지정 없이 값이 할당되는 과정에서 값의 타입에 의해 자동으로 타입이 결정 될 것이라는 것이다. 따라서 같은 변수에 여러개의 타입을 선언하여도 문제가 없다. 아래의 코드를 확인해보자.
let text = 'hello';
console.log(`value: ${text}, type: ${typeof text}`);
//결과 : value: hello, type: string
text = 1;
console.log(`value: ${text}, type: ${typeof text}`);
//결과 : value: 1, type: number
text = '7' + 2;
console.log(`value: ${text}, type: ${typeof text}`);
//결과 : value: 72, type: string
text = '8' / '2';
console.log(`value: ${text}, type: ${typeof text}`);
//결과 : value: 4, type: number

하지만 주의해야 할 것이 있다. text라는 이름으로 선언된 변수를 확인하고 당연히 그 속에 값의 타입이 string 이라고 생각을 하겠지만 위에서 말했듯이 유연한(?) 자바스크립트는 여러개의 변수를 설정하고 바꾸고 할 수 있기 때문에 아래와 같은 코드로 인해 문제가 발생 하는 경우가 많다

let text = 'hello';
console.log(text.chartAt(0));
//결과 : h

text = '8' / '2';
console.log(text.chartAt(0));
//결과 : 런타임에러 ..

도중에 타입이 숫자로 바뀌게 되버린 text의 캐릭터 배열 0번째 자리는 에러가 날 수 밖에 없다 이와같이 자바스크립트는 런타임에서 타입이 정해지기 때문에 런타임 에러가 발생하는 현상이 많아진다. 이러한 타입의 문제 때문에 '타입스크립트'가 나오게 되었다
profile
Frontend Developer

0개의 댓글