spead, rest operator
Javascript 2022. 1. 22. 23:44https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Spread_syntax
function sum(x, y, z) {
return x + y + z;
}
const numbers = [1, 2, 3];
console.log(sum(...numbers));
// expected output: 6
console.log(sum.apply(null, numbers));
// expected output: 6
전개 연산자와 나머지 연산자로 구분
전개 연산자는 배열의 요소나 객체의 속성을 나누는데 사용됨
따라서 우리는 배열이나 객체를 전개 할수 있음
예를 들어 배열의 모든 요소를 새로운 배열에 추가 하고 싶다면
그리고 한두개의 요소를 더 추가 하고 싶다면
const numbers = [1, 2, 3];
const arr2 = [...numbers, 5, 6];
console.log(arr2)
또는 객체의 새로운 속성을 추가해 복사 하고싶을 경우
const person = {
name: "hong",
};
const person2 = {
...person,
age: 28,
};
console.log(person2);
(나머지 연산자)rest의 경우다르게 사용한다
매개변수 리스트를 배열로 통합 한다
class User {
name;
age;
constructor(name, age) {
this.name = name;
this.age = age;
}
}
let user1 = new User("hong", 20);
let user2 = new User("lim", 21);
function addUsers(...args) {
return args.sort();
}
const users = addUsers(user1, user2);
console.log(users);
args는 매개변수를 무한정 받는다
const filter = (...args) => {
return args.filter((x) => x > 2);
};
console.log(filter(1, 2, 3, 4, 5));
[output]
[ 3, 4, 5 ]
https://jsbin.com/binutipadi/edit?js,console
'Javascript' 카테고리의 다른 글
원시데이터타입과 참조타입 (0) | 2022.01.23 |
---|---|
Destructuring 구조분해 할당 (0) | 2022.01.23 |
infinite scrolling (0) | 2021.01.19 |
즉시실행함수(IIFE) : 익명의 함수 표현 (0) | 2020.09.28 |
[Async function] async/await 비동기 처리 (0) | 2020.09.10 |