40.1 이벤트 드리븐 프로그래밍 - 이벤트는 브라우저가 특정 사건들을 감지하여 발생시킨다. - 이벤트가 발생했을 때 동작하는 함수르 이벤트 핸들러라고 한다. 호출 권한을 브라우저에게 위임하는 것이다. - 이벤트 중심으로 프로그래밍하는 것을 이벤트 드리븐 프로그래밍이라고 한다. 40.2 주요 이벤트 타입 8가지 1. 마우스 이벤트 - click, dbclick, mousedown, mouseup, mousemove, mouseenter, mouseover, moseleave, mouseout 등... 오른쪽 왼쪽은 e.which와 e.button으로 판단한다. 브라우저 마다 다르다. - firefox, Safari, Chrome 그리고 Opera 계열의 브라우저는 which가 3일 때 오른쪽 버튼이다. ..
41.1 호출 스케줄링 - 호출 스케줄링: 타이머 함수를 사용해서 브라우저를 통해 일정 시간 후로 호출을 예약하는 것을 말한다. - 타이머 함수들은 브라우저,Node 모두에 존재하는 호스트 객체다. - 타이머 함수들인 비동기 방식으로(브라우저가 시간을 세다가 콜백을 푸시) 실행된다. 41.2 타이머 함수 41.2.1 setTimeout / clearTimeout - setTimeout(func, delay, param1, param2 ...): 콜백함수, 시간(ms 1000분의 1초), 콜백함수로 전달할 파라미터로 이루어 진다. IE9이하에서는 파라미터전달이 불가능하다. 리턴값은 고유한 타이머 id값이다. 이를 사용해서 타이머를 중간에 취소할 수도 있다. - clearTimeout(timerId): 타이..
42.1 동기처리와 비동기 처리 - 함수를 호출하면 함수 코드가 평가되고 실행컨텍스트가 생성된다. 이때 생성된 실행 컨텍스트는 콜스택에 푸시되고, 콜스택이 비워지면서 함수가 실행된다. 디버깅 기준으로 보면, 스택은 step in 할때 쌓인다. step over하면 비워진다. step out하면 쌓이고 비워지는걸 생략한다. - 자바스크립트 엔진은 단 하나의 실행컨텍스트 스택을 가진다. 싱글쓰레드라는 말이다. 한번에 한라인씩밖에 실행 못한다. - 싱글스레드에서는 처리 시간이 오래걸리는 함수를 실행할 경우 블로킹 현상이 발생한다. - javascript에는 sleep함수와 setTimeout함수가 있다. sleep은 동기적으로 동작해 2번째 인자로 들어간 시간동안 다른 모든 실행을 중단시킨다. setTimeo..
48.1 모듈의 일반적인 의미 Module: 재사용 가능한 기능단위로 파일로 분리된 코드뭉치. 모듈의 scope는 File이다. 특정 모듈의 FileScope내에서 asset(변수, 함수, 객체)은 기본적으로 비공개상태다. **즉, 모듈은 Application과 분리되어 별도로 존재하는 것이다.** export: 모듈의 비공개된 asset들을 외부로 공개하기위한 구문. ES6 문법이다. 모듈의 사용자는 export를 통해 공개된 일부만 사용할 수 있다. 48.2 자바스크립트와 모듈 **자바스크립트는 브라우저에 script로 한꺼번에 들어간다는 사실 때문에 태생적으로 모듈 시스템이 존재하지 않는다.** 원래 export와 import는 자바스크립트에 없던 기능이다! **기존 script 태그를 사용하여 j..