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