개발 이야기/JavaScript 20

웹 워커와 서비스 워커

브라우저는 자바스크립트를 실행하기 위해 싱글 스레드를 사용한다. 때문에, 자바스크립트는 한 번에 한 가지의 일만 수행할 수 있다. 비동기 처리를 통해 기다리는 시간을 줄이더라도, 결국 메시지 큐에 쌓인 업무들은 Run to Completion 원칙에 따라 동작합니다. "Run-to-completion" 각 메시지는 다른 메시지가 처리되기 전에 완전히 처리됩니다. 이것은 함수가 실행될 때마다 미리 비워질 수 없고 다른 코드가 실행되기 전에 완전히 실행되며 함t수가 조작하는 데이터를 수정할 수 있다는 사실을 포함하여 프로그램에 대한 추론을 할 때 좋은 속성을 제공합니다. 이것은 C와는 다릅니다. 예를 들어 함수가 쓰레드에서 실행된다면 런타임 시스템이 다른 쓰레드에서 다른 코드를 실행하기 위해 어느 시점에서 ..

ECMAScript2016 & ECMAScript2017 소개

[2016] Array.prototype.includes array.indexOf('5') !== -1 // 이전 array.includes(5) 해당 값의 포함 여부를 확인 할 수 있다. [2016] Exponentiation Operator Math.pow(5, 2) // 이전 5 ** 2 거듭 제곱 연산을 쉽게 할 수 있다. [2017] Object.values / Object.entries const obj = {name:'이석규', age:35}; Object.values(obj); // ["이석규", 35]; Object.entries(obj); // [["name", "이석규"],["age", 35]] 객체의 값을 배열로 반환 받을 수 있다. 객체의 키, 값 쌍을 2차원 배열로 받을 수 있다..

자바스크립트 동작 원리로 이해하는 호이스팅과 클로저

실행문맥, Lexical Environment, OuterEnvironmentReference, EnvironmentRecord 자바스크립트의 동작 원리를 이해하면 자바스크립트의 특성들이 쉽게 이해가 됩니다. 이전에 콜 스택과 이벤트 큐, 이벤트 루프 이야기를 한 적이 있는데요, 오늘 다룰 이야기는 콜 스택에 쌓았던 그 친구에 대한 이야기입니다. 1. 실행 컨텍스트? Execution context (abbreviated form — EC) is the abstract concept used by ECMA-262 specification for typification and differentiation of an executable code. https://www.ecma-international.org..