JS

· JS
싱글 스레드 기반 언어 자바스크립트는 싱글 스레드 ( Single Thread ) 프로그래밍 언어인데, 이 의미는 한번에 하나의 작업만 수행이 가능하다 즉 Call Stack이 하나라는 이야기이다. 스레드 : 프로세스의 실행 단위 즉, 일을 처리하는 사람의 수라고 생각하면 쉬움 싱글 스레드라는 건 일을 처리하는 사람이 한명 이라는것 블로킹 ( Blocking )과 논블로킹( Non-Blocking ) 블로킹 : 긴 작업이 완료될 때까지 다른 모든 작업들이 멈춰있다가 해당 작업이 끝난 후에 다시 진행되는것 논블로킹 : 작업이 진행되는 동안에도 다른 작업들을 계속해서 진행시킬 수 있는 것 이벤트 루프 ( Event Loop ) 구조 JS Engine 자바스크립트 엔진은 Memory Heap과 Call Sta..
· JS
실행 컨텍스트 ( Execution Context )란 Scope,Hoisting,This,Function,Closure 등의 동작원리를 담고 있는 자바 스크립트의 핵심 원리이다. 실행할 코드에 제공할 환경 정보들을 모아놓은 객체. 실행 컨텍스트는 동일한 환경에 있는 코드들을 실행할 때 필요한 환경 정보들을 모아 객체를 구성하고, 이를 콜 스택에 쌓아 올렸다가, 가장 위에 쌓여있는 컨텍스트와 관련있는 코드들을 실행하는 식으로 전체 코드의 환경과 순서를 보장 let a = 'aaa'; function foo () { let b = 'bbb'; function bar () { let c = 'zzz'; console.log(a + b + c); } bar(); } foo(); 위 함수를 실행하면 처음 자바스..
· JS
클로저 ( Closure ) 클로저는 함수와 함수가 선언된 어휘적 환경 ( Lexical Environment )의 조합 즉, 함수 안에 함수를 선언한 환경에서의 관계를 의미합니다. 해당 함수 안에 함수를 선언한 환경은 내부 함수에서 외부 함수로 지역 변수를 접근 할 수 있지만 외부 함수의 실행이 끝나고 외부 함수가 소멸한 이후에도 내부 함수가 외부 함수의 변수에 접근 할 수 있는 것을 의미합니다. 자바스크립트는 함수를 리턴하고 리턴되는 함수가 클로저를 형성하기 때문에 접근이 가능 클로저는 반환된 내부 함수가 자신이 선언되었을때의 환경( Lexical Environment ) 에서의 스코프를 기억하기 때문에 접근이 가능. const fnClosure = () => { const fnOuter = () =..
· JS
스코프 ( Scope ) 란 선언된 변수에 대해서 접근할 수 있는 유효한 범위를 의미한다. 만약 변수가 해당 스코프안에 존재하지 않는다면 사용할 수 없다. 그리고 계층적인 구조를 가지기 때문에 하위 스코프는 상위 스코프에 접근 할 수 있지만 상위 스코프는 하위 스코프에 접근할 수 없다. // 하위 스코프 => 상위 스코프 접근 ( 아무 이상 없이 작동 ) const fnScope = () => { // 상위 스코프의 변수 const name = 'KIM'; const fnChildScope= () => { console.log("상위 접근",name ) } } // 상위 스코프 => 하위 접근 ( 에러 발생 ) const fnScope2 = () => { const fnChild = () => { con..
pows1011
'JS' 카테고리의 글 목록