1) 배열의 구조 분해 할당
const [변수] = 배열;
arr[0]
, arr[1]
처럼 접근하는 것이 아닌 각각의 배열 요소를 변수의 이름으로 접근하기 위해서 사용한다.<script>
// 구조 분해 할당을 했을 때
const arr5 = ['tomato', 'kiwi', 'banana'];
const [tomato, kiwi, banana] = arr5;
console.log(tomato);
// 구조 분해 할당을 하지 않았을 때
const tomato = arr5[0];
const kiwi = arr5[1];
const banana = arr5[2];
</script>
undefined
일 때 기본값 할당이 가능하다.2) 객체의 구조 분해 할당
const { 변수 } = 객체;
<script>
let obj = {
title: "제목";
content: "내용";
num: 0,
}
const { title, num, content } = obj;
// const title = obj.title;
// const num = obj.num;
// const content = obj.content;
console.log(content);
</script>
1) spread 연산자
2) rest 파라미터
클래스 작성 방법
new
키워드를 이용해서 미리 만들어둔 클래스 형태의 오브젝트를 만들 수 있다.- 주의할 점은 클래스를 생성할 때는 클래스의 이름은 PascalCase로 작성해야 한다.
extends
키워드를 사용해서 기존에 있던 클래스의 속성과 메소드를 받아와서 사용하되, 추가적인 속성과 메소드를 더 정의할 수 있다.(상속)
① 클래스 생성하기
② 클래스 상속받기
참고 자료: 포스코x코딩온 강의 자료(1008_Javascript고급.pdf)
1) rest를 사용하지 않은 경우
<script>
function sum(a, b, c, d, e, f, g) {
console.log(a, b, c, d, e, f, g);
let sum = 0;
if (a) sum += a;
if (b) sum += b;
if (c) sum += c;
if (d) sum += d;
if (e) sum += e;
if (f) sum += f;
if (g) sum += g;
return sum;
}
const result = sum(1, 2, 3, 4, 5, 6);
console.log(result);
</script>
->
sum
함수는 7개의 파라미터를 받아오는 함수이다. 하지만 위와 같이 함수의 파라미터를 6개만 전달한 경우,g
값은undefined
가 되고sum
에서+= undefined
를 하게 되면 결과는 21이 아닌NaN
이 도출된다. 이를 해결하기 위해if
문을 통해 모든 값이 유효한 값인지 확인을 한 것이다.
> 결과
2) rest를 사용한 경우
<script>
function sum(...rest) {
console.log(rest);
return rest.reduce((acc, current) => acc + current, 0);
}
const result = sum(1, 2, 3, 4, 5, 6);
console.log(result);
</script>
->
rest
를 통해서 배열을 받고, 배열 내장 함수인reduce
를 통해 값을 모두 더해준 것이다.
🤷🏻♀️
reduce
란?
- 배열 내장 함수
- 두 개의 파라미터를 전달하는데, 첫 번째 파라미터는 accumulator(누적된 값)와 current를 파라미터는 가져와서 결과를 반환하는 콜백함수이며 두 번째 파라미터는 reduce 함수에서 사용할 초기 값이다.
참고
> 결과