JavaScript 기본 | 값 | 타입 변환

Faithful Dev·2025년 5월 20일
0

프리스쿨

목록 보기
25/25

자바스크립트에서 타입 변환(Type Conversion)은 매우 중요한 개념이다. 자바스크립트는 동적 타입 언어이기 때문에, 타입이 자동으로 또는 명시적으로 바뀌는 경우가 자주 발생한다.


두 가지 타입 변환 방식

  1. 암시적 변환 (Implicit Conversion)
    • JS 엔진이 자동으로 타입을 변환
    • 일명 "타입 강제 변환" 또는 "형 변환(coercion)"
  2. 명시적 변환 (Explicit Conversion)
    • 개발자가 직접 코드로 타입을 바꿈
    • String(), Number(), Boolean() 같은 함수 사용

암시적 타입 변환

자바스크립트는 표현식의 문맥에 따라 값을 자동으로 변환한다. 가장 흔한 예는 연산자(+, ==, 조건문 등)에서 발생한다.

숫자 ↔ 문자열

'5' + 1 // "51" → 문자열로 변환됨
'5' - 1 // 4 → 숫자로 변환됨
'5' * '2' // 10 → 숫자로 변환됨
  • + 연산자는 하나라도 문자열이면 전체를 문자열로 변환
  • 나머지 연산자(-, *, /)는 모두 숫자 변환을 시도

불리언 ↔ 다른 타입

!!"hello" // true
!!0 // false
!! undefined // false
Falsy 값 (Boolean으로 변환 시 false가 되는 값):
의미
false거짓
0, -0숫자 0
""빈 문자열
null없음
undefined정의되지 않음
NaN숫자가 아님

나머지 모든 값은 true로 간주된다.


느슨한 비교 (==) 시의 암시적 변환

'5' == 5 // true (문자열 → 숫자 변환)
false == 0 // true
null == undefined // true
[] == '' // true
[] == 0 // true
[1] == 1 // true

혼란스럽기 때문에 실제 개발에서는 항상 === 사용 권장!


명시적 타입 반환

명시적 타입 변환은 개발자가 의도적으로 타입을 바꾸는 것이다.

문자열 변환

String(123) // "123"
(123).toString() // "123"

숫자 변환

Number("42") // 42
parseInt("42px") // 42
parseFloat("3.14") // 3.14
+true // 1
+"123.45" // 123.45

불리언 변환

Boolean(0) // false
Boolean("hello") // true

!!값 패턴도 많이 사용된다: !!"hello"true


특별한 경우들

표현식결과이유
null + 11null → 0으로 변환
undefined + 1NaNundefined → NaN 변환
true + false1true → 1, false → 0
[] + {}"[object Object]"배열이 문자열로 변환됨
{} + []0 또는 "[object Object]"파싱 방식에 따라 다름

요약 정리

변환 종류암시적 예시명시적 예시
문자열 변환'3' + 1 → '31'String(123)
숫자 변환'5' * 2 → 10Number("42")
불리언 변환!!"hello" → trueBoolean(null)

실전 팁

  • 숫자 변환엔 Number(), 문자열 변환엔 String() 또는 .toString(), 불리언은 !! 또는 Boolean()
  • 비교에는 항상 ===(엄격한 동등) 사용 → 예기치 않은 암시적 변환 방지
  • undefinednull 비교는 조심 (예: undefined == nulltrue, ===false)
profile
Turning Vision into Reality.

0개의 댓글