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

soyeon·2022년 11월 16일
0

TIL

목록 보기
29/31

코딩앙마님의 강의를 듣고 정리한 내용입니다.
https://youtu.be/lekNM8ldxno

arguments

  • 함수로 넘어온 모든 인수에 접근
  • 함수 내에서 이용 가능한 지역 변수
  • array 형태의 객체(배열 메서드 사용x)
function showName(name){
  console.log(arguments.length);
  console.log(arguments[0]);
  console.log(arguments[1]);
}
showName('Mike','soon');
//2
//'Mike'
//'soon'

나머지 매개변수

  • arguments와 달리 배열 메서드를 사용할 수 있음
function showName(...names){
	console.log(names);
}
showName(); // []
showName('asdf') //['asdf']
showName('asdf','hjkl') //['asdf','hjkl']

function add(...numbers) {
 let result = numbers.reduce((prev,cur)=>prev +cur);
  console.log(result); //55
}
add(1,2,3,4,5,6,7,8,9,10);
  • 마지막에 써야함
function User(name,age,...skills){
	this.name=name;
  	this.age=age;
  	this.skills = skills;
}

const user1 = new User("asdf",30,"html","css");
console.log(user1);
//{name:"asdf",age:30,skills:["html","css"]}

전개구문: 복제

let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];

let result = [0, ...arr1, ...arr2, 7, 8, 9];
console.log(result); //[0,1,2,3,4,5,6,7,8,9]

let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
arr1 = [...arr2, ...arr1];
console.log(arr1);

arr1 = [...arr2, ...arr1];
console.log(arr1);//[4, 5, 6, 1, 2, 3]
  • 원본에 영향이 안감. 각각 다른 객체
let user = { name: "Mike", age: 30 };
let user2 = { ...user };

user2.name = "soon";

console.log(user.name); //Mike
console.log(user2.name); //soon
  • user에 정보 복사해서 넣기
let user = { name: "Mike" };
let info = { age: 30 };
let fe = ["JS", "React"];
let lang = ["Korean", "English"];

user = {
  ...user,
  ...info,
  skills: [...fe, ...lang]
};
profile
공부중

1개의 댓글

comment-user-thumbnail
2023년 6월 23일

혹시 어느 회사 취업 성공하셨을까요?
포트폴리오 만드신 것 보는데 감탄을 금할 수 없었네요 !!

답글 달기