JS- 2,3

이경민·2025년 12월 22일

한화시스템 Beyond SW

목록 보기
44/52

화살표 함수 (arrow function)

  1. 화살표 함수는 this를 가지지 않는다.

  2. 화살표 함수는 new와 함께 호출할 수 없다.

  3. 화살표 함수는 super를 가지지 않는다.

  4. 화살표 함수는 arguments를 지원하지 않는다.

const theater =  {
    store : '건대점',
    titles : ['어벤저스', '겨울왕국', '스파이더맨'],
    showMovieList() {
        // 화살표 함수
        this.titles.forEach(title => console.log(`${this.store} : ${title}`));
        // 일반 함수
        this.titles.forEach(function(title) {
            // console.log(this);
            console.log(`${this.store} : ${title}`);
        });
    }
};
theater.showMovieList();

rest parameter

  • 여러개의 인자를 하나의 배열로 모아주는 문법 (호출시에 몇개의 인자를 넘기든 args 배열에 들어가 무시되지 않음)
  • 기존 함수의 한계 : 함수에 정해진 인수보다 적게 전달되면 undefined, 정해진 인수보다 많이 전달되면 해당 인수를 무시
  • 이 때 나머지 매개변수 ... 를 사용하면 여러개의 인자를 한데 모아 배열에 담을 수 있다.
  • 나머지 매개변수는 항상 마지막에 있어야 한다.
function f(a, ...rest) {} // ⭕
function f(...rest, a) {} // ❌

spread syntax

  • 배열을 통째로 매개변수에 넘겨주는 기능
  • 하나로 뭉쳐있는 여러 값들의 집합을 전개해서 개별적인 값들의 목록으로 만든다.
  • 배열 병합할 때 사용 가능
  • 문자열 배열로 변환 가능

array and object copy

  • 배열 복사
let arr = [10, 20, 30]; 
let arrCopy = [...arr]; 
console.log(arr); 
console.log(arrCopy); 
console.log(arr === arrCopy);
  • 객체 복사
let obj = { name : '
홍길동
', age : 20 }; 
let objCopy = { ...obj }; 
console.log(obj); 
console.log(objCopy); 
console.log(obj === objCopy);

※정리

  • 나머지 매개변수(rest parameter) : 인수 목록의 나머지를 배열로 모아주므로 ...이 함수 매개변수의 끝에 있다.
  • 스프레드 문법(spread syntax) : 배열을 목록으로 확장해주므로 ...이 함수 호출 시 배열이나 객체 리터럴 내부에 사용된다.
  • 두가지 문법을 함께 사용하면 매개변수 목록과 배열 간 전환을 쉽게 할 수 있다.

0개의 댓글