JavaScript ES6 문법 - default parameter

JavaScript

default parameter

아래 함수처럼 파라미터 개수에 맞지 않게 함수를 실행시킨다면 오류를 발생시킵니다.

1
2
3
4
const sum = function(x,y){
return x+y;
}
sum(); // NaN

ES6에서는 파라미터에 기본 값을 할당해줄 수 있습니다.

1
2
3
4
const sum2 = function(x=5,y=10){
return x+y;
}
sum2(); // 15

각 파라미터는 내부에서 let과 동일하게 동작하기 때문에 TDZ가 존재합니다.
TDZ에 관한 포스팅

1
2
3
4
5
function multiply(x = y * 3, y){
console.log(x * y);
}
multiply(2, 3); // 6
multiply(undefined,2); // 레퍼런스 에러. TDZ.

예 : 기본을 GET방식으로 지정해주고자 할 때

1
2
3
4
5
6
function makeAjaxRequest(url, method = 'GET'){
return method;
}
makeAjaxRequest('google.com');
makeAjaxRequest('google.com', 'POST');

예 : user에게 id를 부여하기. admin user에게는 id를 부여하는 것이 default로 적용되게 할 때

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 생성자 함수
function User(id){
this.id = id;
}
function generateId(){
return Math.random() * 999999; // 유니크한 id생성
}
// Admin user생성을 위해서는 먼저 user로 생성되어야한다.
// 이를 위해 default parameter 사용
function createAdminUser(user = new User(generateId())){
user.admin = true;
return user;
}
// 일반 user. 인스턴스 객체 생성, id부여
const user = new User(generateId());
// admin user.
createAdminUser(user);

참고 자료

고무곰님 블로그
Udemy - ES6 Javascript: The Complete Developer’s Guide

ES6 포스팅

변수선언 let, const
Blocks and IIFEs
Strings 문자열표기법 등
Arrow functions
Class
rest parameter
spread operator
default parameter

Share