Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- mybatis
- es6
- NPM
- react
- 공정능력
- vaadin
- hadoop
- table
- Kotlin
- JavaScript
- 보조정렬
- SQL
- Sqoop
- tomcat
- IntelliJ
- MSSQL
- GIT
- window
- SPC
- mapreduce
- R
- Java
- Android
- Python
- xPlatform
- SSL
- Express
- Eclipse
- plugin
- Spring
Archives
- Today
- Total
DBILITY
javascript es6 function default, rest parameter 본문
front-end & ui/javascript
javascript es6 function default, rest parameter
DBILITY 2021. 10. 28. 11:25반응형
독거 가능성 100% 노후에 라면값이라도 하게 광고 한번씩 클릭하시오! 싫어? 꺼져~!
Please click on the ad so that I can pay for ramen in my old age!
老後にラーメン代だけでもするように広告を一回クリックしてください。
点击一下广告,让老后吃个泡面钱吧!
function multiply(a, b = 1 * a) {
return a * b
}
function sum(a, b = multiply(a)) {
console.log(arguments);
let s = 0;
for (let key in arguments) {
s+=arguments[key];
}
console.log(s);
}
sum(1);
sum(1, 2);
sum(...[1, 2]);
함수의 parameter개수와 일치하지 않게 입력이 될 때 기본값을 줄 수 있고, 기본값은 함수도 된다.
첫 번째 sum(1)의 실행 과정 중 두 번째 인자가 입력되지 않았고 두 번째 인자의 기본값은 함수이므로 기본값 함수를 실행하지 않아 결과는 첫 번째 인자만의 합이 된다.
sum함수 내의 arguments는 es5형식으로 입력된 parameter의 배열이다. 3번째 sum(... [1,2])는 parameter로 배열을 전개(spread)하여 넘긴 것으로 2번째와 결과는 동일하다.
function sum2(a,b,...args) {
args.forEach(function (a,i) {
console.log(a,i);
});
}
sum2(1, 2, 3, 4, 5);
함수 parameter가 가변적일 경우 ... (Rest parameter)를 쓸 수 있다. spread operator와 다른 점은 함수의 parameter자리에 쓴다는 것이다. sum2에서 지정된 parameter a, b 이외에 추가적으로 입력된 parameter를 array [ 3, 4, 5]로 반환한다.
반응형
'front-end & ui > javascript' 카테고리의 다른 글
javascript constructor function (0) | 2021.10.29 |
---|---|
javascript es6 class (0) | 2021.10.28 |
javascript es6(es2015) spread operator, function apply, call, bind (0) | 2021.10.28 |
javascript deep copy (0) | 2021.10.25 |
javascript array sort exercise (0) | 2021.10.19 |
Comments