JS

형 변환 (문자, 숫자 -> 불리언 & 산수연산, 관계연산)

2025. 3. 1. 18:13

1. 문자, 숫자 -> 불리언

// 문자 -> 불린
let x = '';
console.log(Boolean(x)); // false
console.log(typeof x); // string
console.log(typeof Boolean(x)); // boolean

// 숫자 -> 불린
let y = NaN;
console.log(Boolean(y)); // false
console.log(typeof y); // number (NaN의 타입은 스트링이 아니라 넘버..!)
console.log(typeof Boolean(y)); // boolean

// '', 0, NaN == falsy값 => 불리언으로 형 변환 시 false.

 

낫 어 넘버도 넘버다

 

 

2. 산수 연산

console.log(4 + '2'); // 42

 

산수 연산 중 '더하기'는 숫자와 문자열이 함께 있을 때, '문자열' 기준으로 처리하기 때문에 숫자 4가 문자열이 되어 concat이 이루어진다. (덧셈X)

 

console.log('4' - true); // 3

 

더하기를 제외한 나머지 연산들은 숫자로 형을 변환한다.

위 예시에서는 '4'와 true가 모두 숫자 4, 1로 변환되어 결과값으로 3이 나온다.

 

console.log(4 % 'two'); // NaN

 

NaN값은 어떤 연산을 해도 NaN이 나온다.

 

 

3. 관계 연산

관계연산은 산수연산과 동일하게 모두 '숫자'로 변환하여 계산한다.

console.log('2' < 3); // true
console.log(2 > true); // true
console.log('2' <= false); // false

 

하지만 문자열이 숫자가 아닌 문자라면, 위에서처럼 NaN이 되어야 할 것 같지만 '관계 연산'에서는 두 값을 비교할 수 없다고 판단한다.

console.log('two' >= 1); // 'two'가 NaN으로 형 변환되기 때문에 NaN >= 1이 됨 => false

 

따라서 이 경우, 'two'와 1을 비교할 수 없으므로 false가 되는 것이다.

 

3-1. 동등 비교에 따른 형 변환

console.log(1 == '1'); // true
console.log(1 === '1'); // false

 

===은 타입까지 비교하기 때문에 더 엄격하게 비교한다고만 알고 있었지,

==가 '형 변환'을 자동으로 수행한다는 건 몰랐다.

== 비교문에서는 '1'이 숫자 1로 형 변환 되었기 때문에 true가 된 것이다.

'JS' 카테고리의 다른 글

옵셔널 파라미터?  (0) 2025.03.02
콘솔 로그 안에서 콘솔 로그를 호출하면?  (0) 2025.03.02
이중 부정(!!)  (0) 2025.03.01
Three.js + Webpack 프로젝트를 github pages로 배포 후, 이미지 경로 못 찾는 문제  (0) 2025.02.22
한글만 두 번씩 입력되는 문제 (IME Composition)  (0) 2025.02.16
'JS' 카테고리의 다른 글
  • 옵셔널 파라미터?
  • 콘솔 로그 안에서 콘솔 로그를 호출하면?
  • 이중 부정(!!)
  • Three.js + Webpack 프로젝트를 github pages로 배포 후, 이미지 경로 못 찾는 문제
쥬피썬더의노예
쥬피썬더의노예
오히려 좋아
  • 쥬피썬더의노예
    d.log
    쥬피썬더의노예
    글쓰기 관리
    • 분류 전체보기 (112)
      • JS (37)
      • TS (3)
      • WEB (10)
      • React.js (20)
      • Next.js (4)
      • tanstack query (2)
      • Node.js (2)
      • HTML (5)
      • CSS (13)
      • CS (1)
      • 에이전트 (1)
      • Git (4)
      • JAVA (0)
      • SQL (0)
      • db (0)
      • GSAP (0)
      • 자료구조 (1)
      • 알고리즘 (0)
      • ✨회고 (5)
      • 포꾸 (0)
      • 인터뷰 (0)
      • 개발일지 (0)
      • 일기 (1)
      • etc (3)
      • 정처기 실기 (0)
        • C (0)
        • Java (0)
        • Python (0)
      • fonts (0)
      • articles (0)
      • 도서 (0)
  • 인기 글

  • 태그

    안티그래비티
    useState
    리팩토링
    javascript
    React Query
    WEB
    유효성 검사
    zustand
    TypeScript
    상태 관리
    CSR
    조합 패턴
    SSR
    state
    프론트엔드
    css
    React
    HTML
    클로저
    아키텍처
    슬라이딩 윈도우
    React.JS
    자바스크립트
    GIT
    SSG
    리액트
    useEffect
    폼
    Til
    Next.js
  • 최근 글

  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.3
쥬피썬더의노예
형 변환 (문자, 숫자 -> 불리언 & 산수연산, 관계연산)
상단으로

티스토리툴바