[JavsScript] 자바스크립트의 마법사: Unary Plus(+) 연산자 활용법

2026. 3. 14. 12:48·💻 개발/📒 JavaScript
728x90
반응형

| 서론

let num = '123';
console.log(+num);

 

123을 문자가 아닌 숫자로 출력하려고 하는데, 혹시 위의 코드에서 의문이 드시는 점이 있으신가요? 

저는 이 코드를 봤을 때, "문자가 아닌 숫자로 형변환은 어디서하지? +는 왜 있지?"라는 생각이 가장 먼저 들었습니다.

 

이처럼, 자바스크립트 코드를 보다 보면 변수 앞에 뜬금없이 + 기호가 붙어 있는 것을 본 적이 있을 겁니다. 이것을 Unary Plus(단항 더하기) 연산자라고 부릅니다. 단순히 숫자를 더하는 기호가 아니라, 실전에서는 강력한 형 변환 도구로 사용됩니다.

 

오늘은 Unary Plus에 대해서 다뤄보려고 합니다.

 

 

 

| Unary Plus(+)란 무엇인가?

단항 연산자 +는 피연산자 앞에 위치하여 해당 값을 숫자(Number) 타입으로 변환하려고 시도합니다.

 

내부적으로는 Number(value)를 호출하는 것과 동일하게 작동하지만, 문법이 훨씬 간결하다는 장점이 있습니다.

 
let value = "123";
console.log(+value); // 123 (Number)
console.log(Number(value)); // 123 (Number)

 

 

 

 

| 타입별 변환 결과 (Cheat Sheet)

이 표는 자바스크립트 엔진이 내부적으로 어떻게 타입을 다루는지 보여주는 지표입니다.

단순히 외우기보다는 '값이 존재하지 않거나 비어 있으면 0, 해석이 불가능하면 NaN'이라는 규칙을 기억하면 쉽습니다.

 

입력 값 (Value) 결과 (+Value) 비고
true 1 Boolean → Number
false 0 Boolean → Number
"10" 10 숫자 형태의 문자열
"3.14" 3.14 소수점도 유지
"" (빈 문자열) 0 주의! 0으로 변환됨
"abc" NaN 숫자로 바꿀 수 없는 문자열
null 0 Null은 0으로 취급
undefined NaN 정의되지 않음은 숫자가 아님
[] 0 빈 배열은 0
[5] 5 요소가 하나인 배열은 그 요소의 숫자값

 

 

 

 

| 실전 활용: 코딩 테스트와 현업 꿀팁

1) 문자열 배열을 숫자 합계로 구하기

: 코딩 테스트에서 문자열로 된 숫자를 다룰 때 reduce와 조합하면 코드가 극단적으로 짧아집니다.

const str = "12345";

// 일반적인 방법
const sum1 = [...str].reduce((acc, cur) => acc + Number(cur), 0);

// Unary Plus 활용 (가독성과 간결함)
const sum2 = [...str].reduce((acc, cur) => acc + +cur, 0); 

Tip: + +cur 처럼 띄어쓰기를 해주는 것이 좋습니다. ++로 붙여 쓰면 증감 연산자로 오해받아 에러가 발생할 수 있습니다.

 

 

2) Boolean을 0과 1로 즉시 치환

: 특정 조건이 참일 때 1점, 거짓일 때 0점을 부여해야 하는 로직에서 유용합니다.

const isPremium = true;
const bonus = +isPremium; // 1

// 조건문 대신 사용
return +str.includes("apple"); // 포함되면 1, 아니면 0 리턴

 

 

 

 

| 주의할 점: parseInt()와의 차이점

많은 초보자가 +와 parseInt()를 혼동합니다. 하지만 이 둘은 "엄격함"에서 차이가 납니다.

  • Unary Plus (+): 전체 문자열이 완벽한 숫자여야 합니다. 조금이라도 문자가 섞이면 NaN을 반환합니다.
  • parseInt(): 숫자로 시작하면 문자열 중간에 문자가 있어도 숫자만 뽑아냅니다.
const price = "100px";

console.log(+price);        // NaN (엄격함)
console.log(parseInt(price)); // 100 (유연함)

 

 

 

| 왜 사용하는가?

단순히 Number()의 대체재를 넘어, 현업에서 Unary Plus를 선호하는 이유는 크게 세 가지입니다.

  1. 속도: Number() 함수 호출보다 미세하게 빠릅니다.
  2. 간결함: 코드의 길이가 줄어들어 선언적인 느낌을 줍니다.
  3. 전문성: JS 엔진의 작동 원리를 이해하고 사용하는 인상을 줍니다.

 

 

 

| 결론

Unary Plus(+)는 자바스크립트의 유연함과 강력함을 동시에 보여주는 연산자입니다.

  • 핵심: 어떤 값이든 숫자 타입으로 강제 변환한다.
  • 강점: 간결한 문법과 빠른 성능.
  • 주의: NaN이 발생할 수 있는 '엄격한 변환'임을 인지하고 사용하자.

처음에는 + 기호가 낯설게 느껴질 수 있지만, 익숙해지면 자바스크립트 특유의 간결한 코드를 작성하는 데 큰 도움이 됩니다. 

728x90
반응형

'💻 개발 > 📒 JavaScript' 카테고리의 다른 글

[JS] JavaScript 필수 자료구조 & 메서드 정리 — 배열·문자열·객체·Set·정렬까지 한 번에  (0) 2026.01.01
[SvelteKit] 프론트엔드 UX 개선의 디테일: tabindex="-1"와 .blur() 활용법  (1) 2025.11.11
테스트보다 구현이 먼저,,? - 로또 발매기 프로젝트에서 배운 TDD의 전환점  (0) 2025.11.03
하나의 클래스가 너무 많은 일을 할 때 — LottoMachine 리팩토링 이야기  (0) 2025.11.03
Matchers - Jest  (0) 2025.10.24
'💻 개발/📒 JavaScript' 카테고리의 다른 글
  • [JS] JavaScript 필수 자료구조 & 메서드 정리 — 배열·문자열·객체·Set·정렬까지 한 번에
  • [SvelteKit] 프론트엔드 UX 개선의 디테일: tabindex="-1"와 .blur() 활용법
  • 테스트보다 구현이 먼저,,? - 로또 발매기 프로젝트에서 배운 TDD의 전환점
  • 하나의 클래스가 너무 많은 일을 할 때 — LottoMachine 리팩토링 이야기
pangil_kim
pangil_kim
기록을 통해 지속적인 성장을 추구합니다.
  • pangil_kim
    멈추지 않는 기록
    pangil_kim
  • 전체
    오늘
    어제
  • 📝 글쓰기
      ⚙️ 관리

    • 분류 전체보기 (434) N
      • 💻 개발 (188) N
        • ※ 참고 지식 (10)
        • 🦕 React (16)
        • 🎩 Next.js (25)
        • 📘 TypeScript (4)
        • 📒 JavaScript (9)
        • 🟩 Node.js (7)
        • 📀 MySQL (24)
        • 🌸 Spring Boot (5)
        • 👷 SveleteKit (24)
        • 🩵 Flutter (11)
        • 🌀 Dart (2)
        • 🌈 CSS (5)
        • 🔸Git (1)
        • 🔥 Firebase (4)
        • 🧑🏻‍💻 코테 (29)
        • 🕸️ 알고리즘 (5)
        • 🌤️ AWS (1)
        • 🤖 AI Agent (1)
        • 🧬 Backend (2)
        • 🅰️ Angular (3) N
      • 📋 프로젝트 (6)
        • ☄️ 트러블 슈팅 (3)
        • 🧑🏻‍💻 서비스 소개 (3)
      • ✍🏻 회고 (67)
        • ☀️ 취준일지 (13)
        • 🍀 우테코 (32)
        • 👋 주간회고 (6)
      • 📰 정보 공유 (12)
      • 🧑🏻‍💻 개발자라면? (1)
      • 🏫 한동대학교 (153)
        • Database (15)
        • Software Engineering (18)
        • EAP (22)
        • 일반화학 (26)
        • 25-1 수업 정리 (19)
        • Computer Networking (36)
        • OPIc (2)
        • 미술의 이해 (15)
  • 최근 글

  • 인기 글

  • 태그

    FE
    고윤민교수님
    우아한테크코스
    우테코
    찬양
    예배
    네트워킹
    GLS
    날마다 솟는 샘물
    typeScript
    프리코스
    전산전자공학부
    설교
    묵상
    프론트엔드
    날솟샘
    csee
    한동대학교
    글로벌리더십학부
    QT
    CCM
    부트캠프
    웹개발
    데이터베이스
    어노인팅
    주일
    우테코 8기
    컴네
    computer networks and the internet
    웹 프론트엔드 8기
  • 최근 댓글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
pangil_kim
[JavsScript] 자바스크립트의 마법사: Unary Plus(+) 연산자 활용법
상단으로

티스토리툴바