공부공부/JS 딥다이브

[js 딥다이브] 18장 함수와 일급 객체

고생쨩 2023. 10. 26. 16:24
728x90

함수와 일급 객체

  1. 무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다.
  2. 변수나 자료구조(객체, 배열 등)에 저장할 수 있다.
  3. 함수의 매개변수에 전달할 수 있다.
  4. 함수의 반환값으로 사용할 수 있다.
    자바스크립트의 함수는 위의 조건을 모두 만족하므로 일급 객체다.

arguments 객체

function sum() {
 let res = 0;
 // arguments 객체는 length 프로퍼티가 있는 유사 배열 객체이므로 for 문으로 순회할 수 있다. (배열 메서드는 불가)

 for (let i = 0; i < arguments.length; i++) {
  res += arguments[i];
 }
 
 return res;
}

console.log(sum()); // 0
console.log(sum(1, 2)); // 3
console.log(sum(1, 2, 3)); // 6
// ES6 Rest parameter
function sum(...args) {
 return args.reduce((pre, cur) => pre + cur, 0);
}
console.log(sum(1, 2)); // 3
console.log(sum(1, 2, 3, 4, 5)); // 15

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.