오우. 코드를 보고 바로 yes를 해버린 나를 반성한다.
greatest의 초기값이 0이므로, arr가 0이상의 원소로 이루어져 있을 때만 유효하다.
arr가 [-1,-2,-3,-4,-5]라면 -1가 답이어야 하는데 0이 나올것이기 때문이다.
객체를 인자로 복사없이 넣었으므로, 참조값으로 컨트롤하게 되므로 기존 객체에 변경사항이 반영된다.
a1,a2는 같은 참조값을 가지고, b1,b2는 원시값이기 때문에 각각 분리해서 생각하고, c1,c2도 같은 참조값을 가진다.
아.. 값만 생각하고 바로 1번을 찍어버린 나를 반성한다.
map은 배열을 반환하는데 ㅠㅅㅠ
함수선언문은 호이스팅이 된다.
즉, immaBeOnTop()은 first가 나온다.
foo()도 호이스팅된 2개의 함수선언문 중 마지막 것이 반영되고 3이 출력되고,
그 이후에 있는 함수표현식의 재정의로 인해 2가 출력된다.
비동기는 함수는 태스크큐에 들어가서, 콜스택이 비워졌을때 pop되므로, 1,4가 먼저 실행되고,
가장 짧은 지연시간인 3,2순으로 출력된다.
우변이 ['quiz', 'typeofnan', 'dev']가 되고
그럼 length는 3이되고, 3번반복해서 domain에 값이 들어가므로 'dev'가 출력된다.
* domain = 'quiz'는 default 값이당
JSON.parse, JSON.stringify는 깊은 복사로 흔히 쓰이는 기법이다.
깊은 복사가 되었으므로 a의 복사본인 b에서의 변경사항이 a에 반영되지 않는다.
일단 true, true, ?, true는 확실하고,
Date는 false이다. 왜냐하면 JSON.parse & JSON.stringify가 문자열로 바꾸었다가 풀기 때문인데, 그러면 기존 Date와 타입이 달라진다.
Object.assign은 얕은 복사를 하는것처럼 동작하기 때문에, b의 변경사항이 a에 반영되지 않는다.
'개발 > Web Programming' 카테고리의 다른 글
우테코 react-lotto 미션 학습로그 (3) | 2021.06.10 |
---|---|
[리팩터링] 변수 이름 바꾸기 필사 (0) | 2021.06.10 |
quiz.typeofnan.dev 문제 정리 - 2 (0) | 2021.06.08 |
[리팩터링] 변수 캡슐화하기 필사 (0) | 2021.06.08 |
quiz.typeofnan.dev 문제 정리 - 1 (0) | 2021.06.07 |