function A(a = 1) 이렇게 설정해주면 A( ) 해도 디폴트값으로 a에 1 넣어짐
spread - 펼치는거라고 생각하면 됨 ...
함수 파라미터에 들어가는거랑 / 아닌거랑 다름
Array에서 쓸 때
num = [1,2,3] (...num) 하면 1,2,3이 됨
배열같은거 기존 데이터 안건들고 복사해서 뭐 하나 추가하고 이럴 때 유용
number = [...num]해주면 num이랑은 다른 배열이지만 값은 같고 뭐 이렇게됨
객체 리터럴(object)에서 쓸 때
array랑 비슷하게 쓰임
만약에 두개 배열 합치는데 두개가 중복되는게 있음
{...A , ...B} 이렇게 하면 B에 있는 내용이 살아남음(마지막에 추가한게 살아남음)
{...A , ...B , a : 1} 이렇게 하면 A랑 B 앞에 a라는거 있어도 제일 마지막께 살아남음
{...[2,4,6,8]} 하면 {0:2, 1:4 ,...} 이렇게 index값이 key가됨
*정보의 소스를 펼쳐서 다른 정보를 만드는 거
함수에 쓰이면 펼치는거 아님
arguments - 파라미터에 넣은거 다 [ ]에 모아줌 but 매열 method는 사용못함 (배열과 비슷하지만 정확히 배열은 아님)
rest를 써야됨
function (...nums) 하고
function(34,23,243) 하고 nums 출력해보면 [ ] 안에 배열로 넣어있음
배열로 받으니 reduce나 반복문같은 것도 쓸 수 있음
Destructing(이건 좀 몰라서 자세히 적음)
const score = [95 , 53, 23, 12]
const [1등 , 2등] = score
1등 - 95 / 2등 - 53 이라는 변수가 지정됨
*변수로 지정하는거니까 ''쓰면 안됨
여기서 ...을 이용하면
const [1등 , 2등 ...else] = score
하면 else = [23,12]라는 배열값이 저장됨
////// 더 자주쓰이는 object에서 사용법
const 유저정보 = {
email : @
firstName : 이
LastName : 종혁
born : 1996
}
원래라면
const email = 유저정보.email
const born = 유저정보.born 이렇게 해줘야되는걸
const {email , born} = 유저정보
email // @
born // 1996
이렇게 key값하고 변수이름을 object key 값하고 똑같이 이름을 지정해주면 순서 상관없이 그 값을 저장함
이름을 바꿔서 저장하고 싶다면
const {firstName : 성} = 유저정보
성 // 이
저 firstName : 성 이랑 firstName : 이 에서 성-이가 대응되는 느낌
이거 저장할때는 뭔가 대응되는 값이 저장이 된다 라고 생각하면 될듯
여기서도 위에 배웠던 default 설정해놓을 수 있음
함수의 매개변수 자리에서 구조 분해를 이용해도 됨
function fullName(user) {
const {firstName ,Lastname} = user
return `${firstName} {lastName}`
}
하는 걸 더 간단하게 하면
function fullName({firstName , lastName}) {
return `${firstName} {lastName}`
}
똑같이 나옴
fullName(user)를 하면 이 user object가 파라미터에 들어가면서
저기서 이미 분해가 되어버리기 때문에 굳이 user로 안해줘도 됨
근데 좀 헷갈릴듯
배열도 쌉가능
'JS' 카테고리의 다른 글
splice 정리 + slice랑 비교 (0) | 2022.11.29 |
---|---|
랜덤으로 중복없이 수 뽑는거 연습 (0) | 2022.11.26 |
Symbol 자료형 (0) | 2022.11.16 |
for in / for of (0) | 2022.11.16 |
자바스크립트 동기 처리 / promise 문법 (0) | 2022.10.14 |