JS

옵셔널 파라미터?

2025. 3. 2. 14:06

개념

Optional Parameter.

단어는 좀 어렵지만 간단히 말하자면 파라미터에 기본값을 넣어주는 것이다.

해당 자리에 아무것도 전달되지 않으면 기본값으로 옵셔널 파라미터 값이 적용되는 것을 말한다.

function introduce(name, age, nation='한국') {
  console.log(`${name}, ${age}, ${nation}`);
}

introduce('소담', 19, '독일');	// 소담, 19, 독일
introduce('유영', 22);	// 유영, 22, 한국

이 코드에서

function introduce(name, age, nation='한국') {

`nation='한국'`이 옵셔널 파라미터가 적용된 부분이다.

 

주의사항

옵셔널 파라미터를 특정 파라미터에만 적용할 경우, 가장 마지막 파라미터에만 적용할 수 있다.

자바스크립트는 위치 기반으로 파라미터를 매칭하기 때문이다.

function introduce(name='슬기', age, nation){
  console.log(`${name}, ${age}, ${nation}`);
}

introduce(19, '독일');	// 19, 독일, undefined

이처럼 단 한 개의 옵셔널 파라미터가 마지막 파라미터가 아닌 경우, 실행 결과가 예상과 달라진다.

`슬기, 19, '독일'`이 되어야 할 것 같은데 결과는 `19, 독일, undefined`가 된다.

 

그래서 특정 파라미터만 기본값을 설정하고 싶다면 객체 형태로 파라미터를 받는 구조로 리팩터링하는 것이 좋다.

function introduce({name='슬기', age, nation}){
  console.log(`${name}, ${age}, ${nation}`);
}

introduce({ age: 19, nation: '독일' });	// 슬기, 19, '독일'

 

'JS' 카테고리의 다른 글

0.1 + 0.2 !== 0.3 (+해결방법)  (0) 2025.03.04
객체 순회 문제에서 파생된 두 가지 문제들  (0) 2025.03.03
콘솔 로그 안에서 콘솔 로그를 호출하면?  (0) 2025.03.02
형 변환 (문자, 숫자 -> 불리언 & 산수연산, 관계연산)  (0) 2025.03.01
이중 부정(!!)  (0) 2025.03.01
'JS' 카테고리의 다른 글
  • 0.1 + 0.2 !== 0.3 (+해결방법)
  • 객체 순회 문제에서 파생된 두 가지 문제들
  • 콘솔 로그 안에서 콘솔 로그를 호출하면?
  • 형 변환 (문자, 숫자 -> 불리언 & 산수연산, 관계연산)
쥬피썬더의노예
쥬피썬더의노예
오히려 좋아
  • 쥬피썬더의노예
    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)
  • 인기 글

  • 태그

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

  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.3
쥬피썬더의노예
옵셔널 파라미터?
상단으로

티스토리툴바