[파라미터와 아규먼트]
파라미터를 활용하면, 전달하는 값에 따라서 다양한 결과로 동작함.
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 |