매개변수로 a, b를 지정해 두었다. 그리고 리턴 키워드의 데이터로 a + b를 선언하고 console.log에 1, 2 를 지정했다 그럼 당연히 3이라는 값이 출력이 될 것이다. 그리고 두번째에는 7 하나만 있다. 그래서 b데이터는 아무런 값도 없으니,
undefined가 되겠고 출력을 하면 NaN이 출력이 된다. 그래서 기본 값을 설정을 하는 것이다.
이렇게 기본 값을 설정을 하는 것이다 이퀄기호로 = 1을 지정을 해 주면 첫 번째
console.log는 그대로 3이 출력이 되고 두 번째는 8이 출력이 될 것이다 기본 값으로 1을 지정해 두었기 때문.
객체 구조 분해 할당으로 우선 user에 이름과 나이를 선언해 주고 함수부분에
getName({ name })
이렇게 선언을 해 주는 것이다 그리고 return으로 끝내는 것이다. 이러면 코드가 확실히 짧아지고 더 유용하게 사용할 수 있다.
그리고 email을 지엉해 주고 똑같이 지정을 해주고 기본값 즉 이퀄기호= 로 통해서 '이메일이 없다'라고 지정을 해주고 출력을 하면 user에 email이 없으니, 기본값이 출력이 될 것이다. 하지만 user에 email이 있더라면 그대로 기본 값은 무시가 되고, 이메일을 출력하게 될 것이다.
배열 구조 분해 할당으로 배열로 된 코드를 짜 보았다.
객체와 다를 게 많이 없다.
getSecond([, b])
이렇게 지정을 하는 것이다. 바나나만 출력을 할 것이기 때문이다. 그래서 a들어갈 것은 지워주고 쉼표만 남기는 것이고, 그리고 체리는 애당초 뒤에 있으니까 선언조차 해주지 않으면 된다. 그래서 이렇게 선언하고 b가 바나나기 때문에 return으로 b를 선언하고 끝나는 식으로 만들어 주면 된다. 그리고 또 다른 numbers로 숫자를 만들어 주고 console.log에 출력을 하면 11이라는 값이 잘 출력이 될 것이다.
이유는 두 번째 값이기 때문이다.
console.log에 있는 값들을 다 더할 거다. 전개 연산자를 이용해 ...을 사용하는 것이다. 그리고 return으로 reduce를 선언하는 것이다. 이 reduce는 배열데이터 아이템개수만큼 콜백함수 실행이다. 그래서 함수에서 acc cur을 지정해주고 다 더해주는 것이가. 그럼 출력창엔
이렇게 값을 다 더한것이 출력창에 보여진다. 솔직히 이해가 잘 안되어서 이 부분은 다시 한 번 강의를 보고 복습을 해 보아야할 거 같다.
arguments는 배열데이터는 아니고, 배열 데이터 처럼 생긴 객체라고 해서 유사 배열이라고 한다. arguments는 따로 지정을 하지 않아도, 함수 내부에서 쓸 수 가 있는 그런 객체이다.
arguments는 나머지 매개변수 처럼, 배열과 유사하게 모든 정보들을 가지고는 있지만, 정확하게 배열 데이터는 아니고, 유사 배열이기 때문에 활용도가 많이 떨어짐.
직관적이지는 않다.