자바스크립트에서 타입 변환이란, 자바스크립트의 모든 값은 타입이 있다. 값의 타입은 개발자의 의도에 따라 다른 타입으로 변환할 수 있음. 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 또는 타입 캐스팅이라고 함!
개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되기도 함. 이를 암묵적 타입 변환 또는 타입 강제 변환이라고 함!
암묵적 타입 변환은 기존 변수 값을 재할당하여 변경하는 것이 아니다. 자바스크립트 엔진은 표현식을 에러 없이 평가하기 위해 피연산자의 값을 암묵적 타입 변환해 새로운 타입의 값을 만들어 단 한 번 사용하고 버림.
명시적 타입 변환은 타입을 변경하겠다는 개발자의 의도가 명확하게 드러남. 하지만 암묵적 타입 강제 변환은 자바스크립트 엔진에 의해 암묵적으로 드러나지 않게 타입이 자동 변환되기 때문에 타입을 변경하겠다는 개발자의 의도가 정확하게 나타나지 않는다. 따라서 자신이 작성한 코드에서 암묵저 타입 변환이 발생하는지 발행하면 어떤 타입의 값으로 변환되는지, 그리고 타입 변환된 값으로 표현식이 어떻게 평가될 것인지 예측 가능해야 한다. 만약 타입 변환 결과를 예측하지 못하거나 예측이 결과와 일치하지 않는다면 오류를 생성할 가능성이 높아진다.
암묵적 타입 변환
자바스크립트 엔진은 표현식을 평가할 때 개발자의 의도와는 상관없이 코드의 문맥을 고려해 암묵적으로 데이터 타입을 강제 변환(암묵적 타입 변환)할 때가 있다.
표현식을 평가할 때 코드의 문맥에 부합하지 않는 문법이 있을 수가 있음, 언어에 따라 오류가 발생하기도 하지만 자바스크립트는 가급적 에러를 발생시키지 않도록 암묵적 타입 변환을 통해 표현식을 평가함. 암묵적 타입 변환이 발생하면 문자열, 숫자, 불리언과 같은 원시 타입 중 하나로 타입을 자동 변환한다.
'Java Script' 카테고리의 다른 글
JavaScript 12. 타입 변환(숫자 타입으로 변환) (0) | 2023.05.12 |
---|---|
JavaScript 11. 타입 변환(문자열 타입으로 변환) (0) | 2023.05.11 |
JavaScript 09. break문, continue문 (0) | 2023.05.09 |
JavaScript 08. 반복문(while문, do-while문) (0) | 2023.05.08 |
JavaScript 07. 반복문 (for문, 중첩 for문, 이중 for문) (0) | 2023.05.07 |