CodeStates/└ JavaScript(Im)7 Event Loop 자료출처 : loupe 동기적 실행 → 비동기적 실행순으로 출력 console.log("A"); setTimeout(function() { console.log("B"); }, 1000); setTimeout(function() { console.log("C"); }, 500) console.log("D"); 실행 결과 A (동기적) → D (동기적) → C (비동기적) →B (비동기적) 2020. 8. 18. CommonJS CommonJS JavaScript를 브라우저에서뿐만 아니라, 서버사이드 애플리케이션이나 데스크톱 애플리케이션에서도 사용하려고 조직한 자발적 워킹 그룹 모든 모듈은 자신만의 독립적인 실행 영역이 있어야 함 모듈 정의는 전역 객체인 exports 객체를 이용 모듈 사용은 require 함수를 이용 var exports = require('/exports'); function common() { console.log('hello world') } module.exports = common; module.exports vs exports exports는 module.exports 사용을 도와주는 helper exports는 module.exports를 참조할 뿐 module.exports에 뭔가가 이미 붙어 .. 2020. 8. 18. Asynchronous JavaScript 동기와 비동기 (Sync & Async) 동기는 티켓을 끊으러 가는 것을 예로 들면 좋겠다. 티켓을 끊기전까지는 그 줄에 서 있어야 하고 계속해서 기다리면서 대기열이 순차적으로 생긴다. 비동기는 커피 주문을 시키고 진동벨을 예로 들면 좋겠다. 커피 주문을 시키고 그 줄에서 빠져나와 의자에 앉아서 진동벨이 울리기까지 기다리게 된다. 진동벨이 울리면 내가 주문한 커피를 받아 올 수 있다. Callback 비동기를 하기위해서는 순서를 제어할 수 있어야 한다. 순서를 제어하기 위해서는 Call을 기다려야 한다. Call이 불려지기 전까지는 대기 할 수 있어야 한다. 허나, 이런 Callback에도 불구하고 코드의 가독성이 떨어지면서, 문제의 구간이 생긴다. 일명 Callback Hell이라는 구간이 생기는 것이.. 2020. 8. 10. Prototype chain Prototype chain __proto__, constructor, prototype 관계 __proto__ : 프로퍼티에 접근하면 내부적으로 Object.getPrototypeOf가 호출되어 프로토 타입 객체를 반환 constructor : 프로토타입 객체, 객체의 입장에서 자신을 생성한 객체를 가르킴 prototype : 모든 객체는 자신의 프로토타입 객체를 가르키는 [[Prototype]] 인터널 슬롯을 갖으며 상속을 위해 사용 Prototype chain : 자바스크립트는 특정 객체의 프로퍼티나 메소드에 접근하려고 할 때 해당 객체에 접근하려는 프로퍼티 또는 메소드가 없다면 [[Prototype]]이 가리키는 링크를 따라 자신의 부모 역할을 하는 프로토타입 객체의 프로퍼티나 메소드를 차례대로 .. 2020. 8. 2. 이전 1 2 다음