Frontend/JavaScript

자바스크립트(2) - Rest, 클로저, 화살표 함수

leecom116 2022. 9. 26. 21:20

 

Rest 매개변수

부정인수. 마지막 파라미터만 Rest 매개변수가 가능하며, Rest 매개변수는 유사배열이다.

function add4(...args) {
	let s=0;
	for(let n=0; n<args.length; n++) {
		s += args[n];
	}
	return s;
}

console.log( add4(1,2,3,4,5) ); // 15

 



클로저(Closures)

내부함수가 외부함수의 문맥(context)에 접근할 수 있는 것

function fun(x) { // 외부함수
	let n=10;
	
	// 내부함수(클로저)
	function sub(y) {
		return n+x+y; // 외부함수의 변수나 인수 접근 가능
	}
	
	return sub(3); // 외부함수 안에서 내부 함수 호출
}

console.log( fun(2) ); // 15

위에서 내부함수 sub()는 외부함수 fun()의 변수인 n에 참조가 가능하다.
그러므로 fun(2)는 내부함수 sub의 리턴값인 n(10) + x(2) + y(3) = 15 의 결과값이 나오게 된다.



화살표 함수

기존 함수 표현식보다 더 간결한 문법으로 표현한 함수

//  화살표 함수(arrow function)
var sub2 = (args) => { return args.length; };

//  파라미터가 하나만 있는 경우에는 주변 괄호를 생략할 수 있다.
var sub3 = args => { return args.length; };

// 화살표함수의 유일한 문자로 'return'일때 'return'과 중괄호({})를 생략할 수 있다.
var sub4 = args => args.length;