-
함수 업그레이드JavaScript ES6 2022. 5. 11. 09:40
보통 함수는 아래와 같이 쓴다.
function 더하기(a, b) { console.log(a+b); } 더하기(1, 2); //더하기(1)
근데 자바스크립트는 파라미터가 2개일 때, 1개만 써도 에러가 나지 않는다.
여기서 default 파라미터를 설정할 수 있다.
function 더하기(a, b = 10) { console.log(a+b); } 더하기(1)
파라미터 선언에서 미리 할당을 해버리면 b의 기본값이 10으로 고정된다. 즉, b자리에 파라미터를 안넣었을 때 작동한다. default 파라미턴 b=10 , b=2*a 이런 식으로 연산도 가능하다. 그리고 함수도 입력가능하다고 한다.
이제, 함수의 arguments를 알아보자.
function 함수(a,b,c) { console.log(arguments); } 함수(1,2,3);
이렇게 함수의 모든 파라미터를 한꺼번에 싸잡아서 다루려면 arguments라고 한다.
즉, 모든 파라미터를 [ ] 안에 넣은 변수이다.
근데, 만약 중간에 파라미터를 하나 더 넣으면 arguments자료를 쪼개고 넣을건 넣고 뺄건 빼고 해야한다. 그래서 나온 문법은 Rest Parameter이다.
function 함수2(a, b, ...rest) { //...하면 rest파라미터라는 뜻 console.log(rest) } 함수2(1,2,3,4,);
이렇게, ...파라미터를 쓰면 이 자리에 오는 모든 파라미터를 [ ]에 보관해준다.
위처럼 a,b라는 파라미터를 쓰고 그 뒤에 더 쓰는 애들은 rest라는 이름에 다 담기게 된다.
이처럼 ...rest를 쓰면 파라미터가 몇개 들어올지 미리 지정안해주도 되므로 더욱 편리하다.
주의점은
1. rest파라미터는 항상 마지막에 써야하며,
2. 두번이상 금지이다.
만약, 함수의 파라미터에 붙으면 모두 rest문법이고, 나머지는 spread문법이다.
'JavaScript ES6' 카테고리의 다른 글
객체지향 constructor,prototype (0) 2022.05.17 Primitive/Reference Data types (0) 2022.05.17 ...spread operator (0) 2022.05.10 literals (0) 2022.05.09 변수에 대한 정리 (0) 2022.05.06