기록

spring프로젝트_0912

coolcode 2022. 9. 12. 16:11

async + await  >>  promise를 좀 더 간편하게 사용할 수 있게 함 

promise >> all() / race() 같은 유용한 api가 있음

- async 속성이 명시된 경우 : 브라우저에서 페이지가 파싱되는 동안에도 스크립트가 실행됨.

(**async 특성을 지정하면 스크립트를 가져오는 동안 페이지 로딩을 중단하지 않음)

- async 속성은 명시되어 있지 않고 defer 속성만 명시된 경우 : 브라우저가 페이지 파싱을 모두 끝내면 스크립트가 실행됨.

**단, 스크립트 다운로드가 끝나면 바로 실행되는데, 실행 도중에는 페이지 렌더링이 중단되어 스크립트의 실행 순서를 보장할 방법이 없음. 따라서 async는 다른 스크립트에 의존하지 않는 독립 스크립트에 사용해야 함

defer

브라우저는 defer 속성이 있는 스크립트(= defer 스크립트 / 지연 스크립트)를 '백그라운드’에서 다운로드하고 지연 스크립트를 다운로드 하는 도중에도 HTML 파싱이 멈추지 않음. 그리고 defer 스크립트 실행은 페이지 구성이 끝날 때까지 지연됨

defer 속성은 외부 스크립트에만 유효하고 <script>에 src가 없으면 defer 속성은 무시됨

defer 특성으로 가져오는 스크립트는 페이지에 나타난 순서 그대로 불러와서, 페이지 콘텐츠와 위쪽 스크립트 로딩이 끝나면 실행함

async 속성과 defer 속성이 모두 명시되어 있지 않은 경우 : 브라우저가 페이지를 파싱하기 전에 스크립트를 가져와 바로 실행시킴.

------------------------------------------------------------------------------------------------------------------------------------------------------------

 Math.ceil :: 올림 /   Math.floor :: 소수점 이하 버림 /  Math.round :: 반올림 

unshift(), shift()는 push(), pop()과 완전히 동일하게 동작함. 단, 배열의 맨 끝이 아닌 제일 처음 부분의 원소를 추가/제거