패스트캠퍼스 프론트엔드 인강 12일차 비구조화할당과 spread와 rest를 배워보았다(ES6 javascript의 ... 문법)
비구조화할당(구조분해)
destructuring assignment
말이어려운데 쉽게말해 객체나 배열의 원소를 밖으로 꺼내는것을 의미하는 것같다.
객체 비구조화할당
//객체에서의 비구조할당
//만약 f의값이 없다고 가정할때 아래처럼 객체네 f=100이런식으로 넣어줌
const object = {a:1, b:2}
const {a, b, f=100} = object
console.log(a)
console.log(b)
console.log(f)
//비구조할당은 함수의 파라미터에서도 적용가능
//만약 e의값이 없다고 가정할때 함수안에 e||2또는 아래처럼 객체네 e=3이런식으로 값을 넣어줌
const object2 = {c:1, d:2}
function print({c,d,e=3}){
console.log(c)
console.log(d)
console.log(e)
}
print(object2)
//비구조할당을할때 이름을 바꾸는 방법?
const animal = {
name:'멍멍이',
type:'개'
}
// const nickname = animal.name
//name을 nickname으로 바꿀수있다.
const {name:nickname} = animal
console.log(nickname)
배열 비구조화할당은 객체 비구조할당과 비슷하다.
//배열에서의 비구조할당
const array = [111]
const [one, two = 222] = array
console.log(one)
console.log(two)
객체가 깊숙한곳에 들어있을경우
//객체의 깊숙한곳에서 꺼내는방법?
const deepObject = {
state:{
information:{
name:'dubaiyu',
languages:['korean', 'english', 'japanese']
}
},
value:5
}
// const{
// state:{
// information:{
// name, languages
// }
// },
// value
// } = deepObject
const {name, languages} = deepObject.state.information
const {value} = deepObject
const extracted = {
name,
languages,
value
}
console.log(extracted);
spread와 rest
const slime = {
name:'슬라임'
}
const cuteSlime = {
name:'슬라임',
attribute:'cute'
}
const purpleCuteClime ={
name:'슬라임',
attribute:'cute',
color:'purple'
}
console.log(slime)
console.log(cuteSlime)
console.log(purpleCuteClime)
이렇게 중복되는 코드를 spread 연산자인 ...을 통해 쉽게표현할수있다.
const slime = {
name:'슬라임'
}
const cuteSlime = {
...slime,
attribute:'cute'
}
const purpleCuteClime ={
...cuteSlime,
color:'purple'
}
console.log(slime)
console.log(cuteSlime)
console.log(purpleCuteClime)
...purpleCuteSlime, 다음에 color:'green'을 적용할경우 컬러가변경된다(...위에 선언은 효과없음)
spead연산자는 배열에서도 사용할수있다.
const animal = ['개']
const animalAdd = [...animal,'고양이']
console.log(animalAdd)
const addanother = animalAdd.concat('비둘기')
console.log(addanother)
const numbers = [1,2,3,4,5]
const spreadNumbers = [...numbers, 10, ...numbers]
console.log(spreadNumbers)
마지막으로 spread연산자는 중복도 가능하다. 결과는 [1,2,3,4,5,10,1,2,3,4,5]
프론트엔드 개발 올인원 패키지 with React Online. | 패스트캠퍼스
성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.
www.fastcampus.co.kr
반응형
'Frontend' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] 프론트엔드 인강 100% 환급 챌린지 14회차 미션 (0) | 2020.08.23 |
---|---|
[패스트캠퍼스 수강 후기] 프론트엔드 인강 100% 환급 챌린지 13회차 미션 (0) | 2020.08.22 |
[패스트캠퍼스 수강 후기] 프론트엔드 인강 100% 환급 챌린지 11회차 미션 (0) | 2020.08.20 |
[패스트캠퍼스 수강 후기] 프론트엔드 인강 100% 환급 챌린지 10회차 미션 (0) | 2020.08.19 |
[패스트캠퍼스 수강 후기] 프론트엔드 인강 100% 환급 챌린지 9회차 미션 (0) | 2020.08.18 |