11.25 Spread/Rest

홍왕열·2021년 11월 25일
0

Rest

arguments

함수로 넘어온 모든 인수에 접근 가능
함수 내에서 이용 가능한 지역 변수
length/index
Array 형태의 객체
length와 index가 있어서 배열로 생각할 수 있지만 Array 형태의 객체다.

나머지 매개변수

정해지지 않은 개수의 인수를 배열로 나타낼 수 있게 한다.

생성자 함수는 첫 글자는 대문자로!
나머지 매개변수는 항상 마지막에 있어야 한다!

결과값을 보면 배열로 나타나는 것을 볼 수 있다.

Spread

[...arr] = 새로운 배열에 arr을 복사해온다.

주로 배열을 풀어서 인자로 전달하거나, 배열을 풀어서 각각의 요소로 넣을 때에 사용.

Spread는 복사를 하는 것이기 때문에 원본이 바뀌지 않는다.

더 깊게 만들어 보면

구조분해할당

객체

연관되어 있는 데이터를 담기 위한 그릇. 배열과 유사하다.

객체와 배열의 차이

배열 = [ ]
객체 = { }

객체에 키와 value를 담는 법

객체를 불러올 때

object(변수)['key'] - 일반배열 및 객체배열 모두 불러올 수 있다
object(변수).key - 객체배열은 불러올 수 없다(순서가 없어서)

일반배열에서 key를 호출하면 index가 나온다.

value 호출은 object[key]


객체배열에서 안에 함수가 있을 때 함수를 실행하는 방법

Object[key]()

객체지향 맛보기

객체지향이란 하나의 그릇 안에 그룹핑
객체에는 객체를 담을수도 있고 함수를 담을수도 있다.

오늘 배운 것

equal = 주소값을 비교한다
deep.equal = 안에 요소를 비교한다

객체는 length를 쓸 수 없다(순서가 없기 때문에)

얇은복사 - 주소값만 복사
깊은복사 - 값 자체를 복사한다. 주소값은 다르다

const spread=[1,2,3][...spread] <- 키값 자체를 복사하지만, 주소값은 다르다.

true는 숫자 1
false는 숫자 0

Object.assign(생성할 객체, 복사할 객체)

참조자료형을 비교했을 때, 주소값이 같다면 같은 것으로 되지만 주소값이 다르다면 같지 않다.

지역변수로 선언한 let, const 등은 바깥쪽에서 호출할 수 없다.

Object.keys() 는 전달된 객체에서 직접 찾은 열거할 수 있는 속성 이름에 해당하는 문자열 배열을 반환합니다. 속성 이름의 순서는 객체의 속성을 수동으로 반복하여 지정하는 것과 동일합니다.

그래서 객체배열의 경우 길이를 알고싶을 때 Object.keys().length를 사용한다

오늘 Pair가 역대급으로 창피하고 너무 속상한 하루였다.
진짜 지금까지 뭐했나 싶었다.
너무 기죽는다.
사람들과 비교하면 너무 힘들지만 스스로 내 위치를 알고 이겨내자.
하아.. 너무 힘들긴하다

profile
코딩 일기장

0개의 댓글