본문 바로가기

JavaScript/Modern JavaScript

[JavaScript] Parameter 기본값

[파라미터와 아규먼트]

 

파라미터를 활용하면, 전달하는 값에 따라서 다양한 결과로 동작함.

 

function greeting (name) {
  console.log(`안녕하세요. 제 이름은 ${name} 입니다.`);
}

greeting('김철수'); //안녕하세요. 제 이름은 김철수 입니다.
greeting('이훈이'); //안녕하세요. 제 이름은 이훈이 입니다.
greeting('신짱구'); //안녕하세요. 제 이름은 신짱구 입니다.

 

'김철수', '이훈이', '신짱구' 와 같이 파라미터에 전달되는 값을 아규먼트(Argument) 라고 함.


[파라미터의 기본값]

 

function greeting (name) {
  console.log(`안녕하세요. 제 이름은 ${name} 입니다.`);
}

greeting(); //안녕하세요. 제 이름은 undefined 입니다.

 

파라미터가 있는 함수에 아무런 아규먼트를 전달하지 않으면, 파라미터는 undefined 값을 가지고 동작함.

 

 

function greeting (name = '신짱구') {
  console.log(`안녕하세요. 제 이름은 ${name} 입니다.`);
}

greeting(); //안녕하세요. 제 이름은 신짱구 입니다.

 

자바스크립트에서 함수의 파라미터는 값을 할당하지 않아도, 기본값을 가지고 있음. 기본값이 있는 파라미터는 함수를 호출할 때 아규먼트를 전달하지 않으면, 파라미터의 기본값을 가지고 동작함. 

 

 

function greeting (name = '신짱구', interest) {
  console.log(`안녕하세요. 제 이름은 ${name} 입니다.`);
  console.log(`저는 ${interest}를 좋아합니다.`)
}

greeting('김철수'); 
//안녕하세요. 제 이름은 김철수 입니다.
//저는 undefined를 좋아합니다.

 

아규먼트는 순서대로 전달되며, 두번째 아규먼트가 생략되었기 때문에 undefined 출력됨. 따라서 기본값을 가진 파라미터를 오른쪽편에 작성하는것이 바람직하다.

 

 

function greeting (name = '신짱구', interest = '초코비') {
  console.log(`안녕하세요. 제 이름은 ${name} 입니다.`);
  console.log(`저는 ${interest}을 좋아합니다.`)
}

greeting(undefined, '액션가면'); 
//안녕하세요. 제 이름은 신짱구 입니다.
//저는 액션가면를 좋아합니다.

 

아규먼트에 undefined 를 전달하면 기본값을 가진채로 동작하며 두번째 아규먼트는 두번째 파라미터에 전달됨. 

'JavaScript > Modern JavaScript' 카테고리의 다른 글

[JavaScript] Rest Parameter  (0) 2023.02.01
[JavaScript] Arguments 객체  (0) 2023.02.01
[JavaScript] 함수의 형태  (0) 2023.02.01
[JavaScript] 즉시 실행 함수 (IIFE)  (0) 2023.01.31
[JavaScript] 함수를 만드는 법  (0) 2023.01.30