spring프로젝트_0912
async + await >> promise를 좀 더 간편하게 사용할 수 있게 함
promise >> all() / race() 같은 유용한 api가 있음
- async 속성이 명시된 경우 : 브라우저에서 페이지가 파싱되는 동안에도 스크립트가 실행됨.
(**async 특성을 지정하면 스크립트를 가져오는 동안 페이지 로딩을 중단하지 않음)
- async 속성은 명시되어 있지 않고 defer 속성만 명시된 경우 : 브라우저가 페이지 파싱을 모두 끝내면 스크립트가 실행됨.
**단, 스크립트 다운로드가 끝나면 바로 실행되는데, 실행 도중에는 페이지 렌더링이 중단되어 스크립트의 실행 순서를 보장할 방법이 없음. 따라서 async는 다른 스크립트에 의존하지 않는 독립 스크립트에 사용해야 함
defer
브라우저는 defer 속성이 있는 스크립트(= defer 스크립트 / 지연 스크립트)를 '백그라운드’에서 다운로드하고 지연 스크립트를 다운로드 하는 도중에도 HTML 파싱이 멈추지 않음. 그리고 defer 스크립트 실행은 페이지 구성이 끝날 때까지 지연됨
defer 특성으로 가져오는 스크립트는 페이지에 나타난 순서 그대로 불러와서, 페이지 콘텐츠와 위쪽 스크립트 로딩이 끝나면 실행함
async 속성과 defer 속성이 모두 명시되어 있지 않은 경우 : 브라우저가 페이지를 파싱하기 전에 스크립트를 가져와 바로 실행시킴.
------------------------------------------------------------------------------------------------------------------------------------------------------------
Math.ceil :: 올림 / Math.floor :: 소수점 이하 버림 / Math.round :: 반올림
unshift(), shift()는 push(), pop()과 완전히 동일하게 동작함. 단, 배열의 맨 끝이 아닌 제일 처음 부분의 원소를 추가/제거