최대 1 분 소요

나머지 매개변수 / 전개구문

1. 나머지 매개변수

image

  • 호출할때 인수를 초과해도(설정값 만큼만 호출됨) 상관없고, 아예 안넣어도 상관없음(undefined)
  • 함수에 인수를 얻는 방법 : arguments , 나머지 매개변수

image

image

Q. 전달받은 모든 수를 더해야할때?

function add(...numbers) {
  let result = 0;
  numbers.forEach((num) => (result += num));
  console.log(result);
}
add(1,2,3);
add(1,2,3,4,5,6,7,8,9,10);

==> 6 , 55

Q. USER객체를 만들어주는 생성자 함수 만들기

function User(name, age, ...skills) {
  this.name = name;
  this.age = age;
  this.skills = skills;
}
const user1 = new User('Mike', 30, 'css')
const user2 = new User('Tom', 20, 'Js','React')
const user3 = new User('Jane', 10, 'English')
console.log(user1);
console.log(user2);
console.log(user3);

image

2. 전개구문(Spread syntax) : 배열

image

image

* 중간에 넣는것도 가능

image

* 객체도 가능/ user2의 이름을 바꿔도 user1에 영향이 없음. 별개의 user2를 복제한것.

arr1을 [4,5,6,1,2,3]으로 만들기

let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
  1. reverse , unshift이용
arr2.reverse().forEach(num => {
  arr1.unshift(num);
})
console.log(arr1);
  1. 전개구문 이용
    arr1 = [...arr2, ...arr1]
    console.log(arr1);
    

image

객체 전개구문 이용

let user = {name: "Mike"};
let info = {age: 30};
let fe = ["JS", "React"];
let lang = ["Korean", "English"];
user = {
  ...user,
  ...info,
  skills: [...fe, ...lang],
};
console.log(user);

image

댓글남기기