...
function showName(name){
console.log(name);
}
showName('mike'); // 'mike'
showName('mike', 'tom'); // 'mike'
showName(); // undefined
함수에 넘겨 주는 인수의 개수는 제약이 없다.
아무것도 입력하지 않아도 에러는 발생하지 않고 undefined 가 반환된다.
과거에는 argument 만 사용할 수 있었다.
화살표 함수에는 argument 가 없다.
function showname(name){
console.log(arguments.length);
console.log(arguments[0]);
console.log(arguments[1]);
}
showName('mike', 'tom');
// 2
// 'mike'
// 'tom'
function showName(...names){
console.log(names);
}
showName(); // []
showName('mike'); // ['mike;]
showName('mike', 'tom'); // ['mike', 'tom']
function add() {} add(1,2,3); add(1,2,3,4,5,6,7,8,9,10);
forEach() 를 사용해 보자.
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);
reduce 를 사용하여 코드를 수정해 보자.
function add(...numbers) {
let result = numbers.reduce((prev, cur)=> prev + cur);
console.log(result);
}
add(1,2,3);
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('mike', 30, 'html', 'css');
const user2 = new User('jane', 32, 'js', 'react');
console.log(user1);
/*
age: 30
name: "mike"
skills: (2) ['html', 'css']
*/
console.log(user2);
/*
age: 32
name: "jane"
skills: (2) ['js', 'react']
*/
❗️(주의) 나머지 매개변수는 항상 마지막에 위치해야 한다.
중간에 쓰는 것도 가능하다.
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 arr = [1, 2, 3];
let arr2 = [...arr];
console.log(arr2); // [1, 2, 3]
let user = {name : 'mike', age: 30};
let user2 = {...user};
user2. name = 'tom';
console.log(user.name); // 'mike'
console.log(user2.name); // 'tom'
let arr1 = [1,2,3]; let arr2 = [4,5,6];
forEach()문을 사용하여 보자.
let arr1 = [1,2,3];
let arr2 = [4,5,6];
arr2.reverse().forEach(num => {
arr1.unshift(num);
});
console.log(arr1); // [4,5,6,1,2,3]
arr2.reverse() 를 하지 않으면 값이 [6,5,4,1,2,3] 이 되므로 꼭 arr2 의 값을 reverse 해 줘야 한다.
전개구문을 사용하여 조금 더 쉽게 바꿔 보자.
let arr1 = [1,2,3];
let arr2 = [4,5,6];
arr1 = [...arr2, ...arr1];
console.log(arr1); // [4,5,6,1,2,3]
우선, 전개 구문을 사용하지 않고 forEach 를 사용하여 보자.
let user = { name : "mike" };
let info = { age : 30 };
let fe = ["js", "react"];
let lang = ["korean", "english"];
user = Object.assign({},user, info, {
skills : [],
});
fe.forEach((item) => {
user.skills.push(item);
});
lang.forEach((item)=>{
user.skills.push(item);
})
console.log(user);
/*
age: 30
name: "mike"
skills: (4) ['js', 'react', 'korean', 'english']
*/
전개 구문을 사용하여 보자.
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);
/*
age: 30
name: "mike"
skills: (4) ['js', 'react', 'korean', 'english']
*/
forfEach() 를 사용했을 때보다 훨씬 간단하게 코드를 짤 수 있다.