console.log() 한두번 실행은 괜찮지만, 수만번에 걸쳐서 호출되게 된다면 스택을 계속 차지할것이고, 이것은 성능 하락으로 이어진다.
이런것을 blocking script라고한다.
만약 네트워크 통신을 비동기가 아닌 동기방식으로 처리하게 될 경우, 그 동기 처리가 끝날때까지 스택은 블럭된다.
그래서 화면을 다시그리거나, 버튼을 클릭한다거나 하는 일들을 제대로 브라우저가 처리할수 없는 상태가 되어 버린다.
자바스크립트는 싱글 스레드 언어이기 떄문에 두가지 작업을 동시에 할 수 없다.
콜스택에서 실행중인 함수가 값을 리턴해야지만 그 다음일을 할 수 있게 된다. 그래서 네트워크 요청같이 시간이 오래걸리는 작업이 스택에서 실행중이라면 브라우저는 아무일도 할 수 없게 되는 것이다.
그래서 비동기 함수들은 동기함수(console.log)와는 다르게 스택에 바로 삽입되지 않는다.

이벤트에 이벤트 리스너를 붙인 상태에서 이벤트가 발생하면 메세지가 추가된다.
발생한 이벤트에 대한 이벤트 리스너가 없다면 그 이벤트는 사라진다.
어떤 버튼 클릭 이벤트 핸들러가 붙이고 클릭하면 이벤트가 발생한다.