#4 형 변환

2026. 1. 6. 19:47·JavaScript/기초
반응형

개요

형 변환이 왜 필요할까?

"문자" + "문자" , "숫자" + "숫자" 같은 형끼리는 연산이 가능하다.

"Hello" + "World" = "HelloWorld" , 100 + 200 =300

 

그렇다면 "문자" + "숫자" 또는  "숫자" + "문자" 라면? 어떻게 계산을 해야할까?

 

아래 예시 코드를 보면

const mathScore = prompt("수학 몇점?"); //수학 90 입력함
const egScore = prompt("영어 몇점?");   //영어 80 입력함
const result = (mathScore + egScore) / 2;

console.log(result);

85가 나오는게 아니라 4540 이라는 이상한 숫자가 나왔다.

 

prompt()의 경우 입력 값을 항상 문자로 인식한다.

따라서, 90 + 80  = 170이 아닌 "90" + "80" = "8090"으로 해석한 것이다.

 

그렇다면 "8090" / 2 = 4540 같이 제대로 된 계산이 나왔을까?

→ 숫자형이 아니더라도 나누기(/) 같은 표현식은 자동으로 숫자형으로 자동변환이 되는데 이를 자동 형 변환이라고 한다.

EX) "6" / "2" = 3 이 된다

 

위와 같이 자동 형 변환이 된다면 편리하다고 생각할 수 있겠지만, 알 수 없는 에러를 발생시킬 수 있기 때문에 자신이 원하는 타입으로 변환해 주는 것이 좋다.


String()

  • 괄호 안의 타입을 문자형으로 바꿔준다
console.log(String(3), 
String(true), 
String(false), 
String(null), 
String(undefined)
)


Number()

  • 괄호 안의 타입을 숫자형으로 바꿔준다
  • 사용자로부터 입력받은 값이 문자형인 경우 자주 사용
console.log(
	Number("1234"),        // 1234
	Number("1234aasd"),     // NaN
	Number(true),           // 1
	Number(false)          // 0
)


Boolean

  • Boolean 형으로 바꿔주는데 false의 케이스만 기억하면 된다

False

  • 숫자 0
  • 빈 문자열 "", '' 
  • null
  • undefined
  • NaN

이 외는 모두 True 다

console.log(
	Boolean(1),
	Boolean(123),
	Boolean("JavaScript")
)
console.log(
	Boolean(0),
	Boolean(''),
	Boolean(null),
	Boolean(undefined),
	Boolean(NaN)
)


요약

String() → 문자형으로 변환

Number() → 숫자형으로 변환 / Number("문자")는 NaN

Boolean() -> Boolean형으로 변환 false만 기억

0, '', "", null, undefined, NaN = False


암기

Number(null) = 0

Number(undefined) = NaN

Boolean(0) = false

Boolean("0") = true

Boolean('') = false

Boolean(' ') = true

 

반응형

'JavaScript > 기초' 카테고리의 다른 글

#6 비교 연산자와 조건문  (0) 2026.01.06
#5 연산자  (0) 2026.01.06
#3 alert, prompt, confirm  (0) 2026.01.06
#2 자료형  (0) 2026.01.06
#1 변수  (0) 2026.01.06
'JavaScript/기초' 카테고리의 다른 글
  • #6 비교 연산자와 조건문
  • #5 연산자
  • #3 alert, prompt, confirm
  • #2 자료형
y3onbug5
y3onbug5
y3onbug5 님의 블로그 입니다.
  • y3onbug5
    y3onbug5 님의 블로그
    y3onbug5
  • 전체
    오늘
    어제
    • 분류 전체보기 (167) N
      • Alpacahack (19) N
      • Dreamhack 워게임 (49)
        • Lv.1 (40)
        • Lv.0 (4)
        • LV.2 (3)
        • LV.3 (2)
      • [Dreamhack] Web Beginner (3)
      • [Dreamhack] Web Hacking (17)
        • 웹 기초 지식 (4)
        • Cookie & Session (2)
        • Cross-Site Scripting(XSS) (1)
        • Cross-Site Request Forgery (1)
        • SQL Injection (4)
        • NoSQL Injection (2)
        • Command Injection (1)
        • File Vulnerability (1)
        • Server-Side Request Forgery (1)
      • [Dreamhack] Web Hacking Client-Side (10)
        • XSS Filtering Bypass (2)
        • Content Security Policy (CSP) (2)
        • CSRF,CORS Bypass (2)
        • Client-Side Template Injection (CSTI) (1)
        • CSS Injection (1)
        • Relative Path Overwrite (RPO) (1)
        • DOM Vulnerability (1)
      • [Dreamhack] Web Hacking Server-Side (15)
        • SQL Injection Advanced (4)
        • SQL Injection Advanced - Fingerprinting (2)
        • NoSQL Injection Advanced (3)
        • Command Injection Advanced - Web Servers (3)
        • File Vulnerability Advanced - Web Server (3)
      • [Dreamhack]Black-Box Penetration Testing (15)
        • DreamCommunity Penetration Testing (11)
      • [Dreamhack] LLM (2)
        • [Dreamhack] LLM과 프롬프트 엔지니어링 (2)
      • Web 공부 (4)
      • Web Study (15)
      • JavaScript (17)
        • 기초 (12)
        • 중급 (4)
      • 웹 개발(Flask) (0)
      • [Security First] web 기초교육 (1) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JavaScript
    cve
    alpacahack
    드림핵
    LLM
    CSRF
    DreamHack
    webhacking
    web
    webstudy
    hacking
    JS
    xss
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
y3onbug5
#4 형 변환
상단으로

티스토리툴바