Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Clone
- vanilla js
- TiMER
- 느낀 점
- expo
- react-native
- scflix
- react-hook
- 코코아톡
- Nicolas
- 클론코딩
- react
- 자바스크립트
- CSS
- Nomad
- 마무리
- 오류
- coding
- HTML
- 프로젝트
- Hook
- Firebase
- Vanilla
- Netflix
- Nomad coder
- Project
- javascript
- github
- 바닐라 자바스크립트
- 계획
Archives
- Today
- Total
꾸매코딩
[JavaScript] ...에 대한 Spread 와 Rest 본문
반응형
Spread
. . . 으로 나타낸다.
Array, Object들 안에 있는 요소(element)를 개별적으로 뽑아낼 수 있다.
뽑아낸 요소들로 새로운 Array, Object 만들기가 용이하다.
Spread는 변수를 가져가서 풀어 헤친다(Unpack)
[Array]
const number = [1, 2, 3]
//배열을 풀어 헤쳐서 개별 값들을 출력해줌
console.log(...number) //1 2 3
console.log(number) //[1, 2, 3]
const english = ['a', 'b']
//새 배열로 만들어 사용하기 편함
const newArr = [...number, ...english]
console.log(newArr) //[1, 2, 3, 'a', 'b']
[Object]
const gimbapObj = {
name: "gimbap",
price: 2000
}
const waterObj = {
state: "Liquid ",
capacity: "1.5L"
}
console.log({ ...gimbapObj, ...waterObj })
//{ name: 'gimbap', price: 2000, state: 'Liquid ', capacity: '1.5L' }
Spread 활용 - 요소 추가
//Array
const number = [1, 2, 3]
const newNumber = [...number, 4] //기존 number에 4를 추가하여 새로운 newNumber생성
console.log(newNumber) //[ 1, 2, 3, 4 ]
//Object
const login = { id: "id" }
console.log({ ...login, password: 1234 }); //{ id: 'id', password: 1234 }
Rest
Rest 또한 . . . 으로 나타낸다.
모든 값을 하나의 변수로 축소(Contract)한다.
//인자 값을 ...을 통해 rest로 받을 수 있다.
const args = (...rest) => console.log(rest);//[ 1, 'a', 'Hello', true, [ 1, 2, 3, 4 ] ]
args(1, 'a', 'Hello', true, [1, 2, 3, 4])
//rest는 다른 이름으로 나타내도 상관없지만, rest로 나타내는 것을 권장한다.
const parameter = (...something) => console.log(...something);//1 a Hello true [ 1, 2, 3, 4 ]
parameter(1, 'a', 'Hello', true, [1, 2, 3, 4])
Spread + Rest + Destructuring
Spread, Rest, Destructuring를 활용하면 다양한 방법으로 가능하다.
const user = {
id: "id",
age: 24,
password: 1234
}
//...rest값만 return 해준다.
const killPassword = ({ password, ...rest }) => rest;
const cleanUser = killPassword(user)
console.log(cleanUser); //{ id: 'id', age: 24 }
참고 자료
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Spread_syntax
반응형