에듀테크 프로젝트 대시보드
타입 강제 변환 (Type Coercion)
변수의 타입을 언제 확정하는가가 두 방식의 차이입니다. 정적 타이핑은 컴파일(실행 전) 시점에 타입이 고정되어 틀리면 실행 자체가 안 되고, 동적 타이핑은 실행 중에 값을 보고 타입을 그때그때 판단합니다.
JS는 +, -, == 같은 연산자를 만나면 두 값의 타입을 강제로 맞춥니다.
핵심 흐름은 값을 원시값으로 먼저 바꾸는 ToPrimitive,
그다음 상황에 따라 ToString 또는 ToNumber로 좁히는 것입니다.
+는 둘 중 하나라도 문자열이면 문자열 이어붙이기, 아니면 둘 다 숫자로 바꿔 더합니다.
-, *, /는 문자열 여부와 상관없이 항상 숫자로 변환 후 계산합니다.
==는 타입이 다르면 규칙표에 따라 숫자로 맞춰서 비교하고, ===는 변환 없이 타입부터 다르면 바로 false입니다.
왼쪽 값·연산자·오른쪽 값을 골라 실행하면, 실제 자바스크립트 엔진이 계산한 결과와 그 변환 과정을 보여줍니다.
카드를 클릭하면 실제 계산 결과와 왜 그런 값이 나오는지 확인할 수 있습니다.