호이스팅의 사전적인 의미는 들어올리기 를 의미한다. 호이스팅은 유효 범위 내부의 선언문들을 최상단으로 끌어 올려진 것 같은 현상을 말한다. 자바스크립트의 모든 선언문 let, const, class 키워드를 사용한 선언문은 호이스팅이 발생하지 않는 것처럼 동작한다.
ES5까지 변수를 선언할 수 있는 방법은 var 키워드를 사용하는 것이다. ES6부터 let, const가 도입되었고 var 키워드보다 안전하게 사용할 수 있어서 현재는 대부분 let, const 키워드를 사용하여 코드가 작성되고 있다.
자바스크립트의 함수는 호출될 때 인자 값 이외에 arguments 객체와 this를 암묵적으로 전달받는다.자바스크립트의 this는 함수 호출 방식에 따라 바인딩되는 객체가 달라진다.자바스크립트는 함수 호출 방식에 따라서 this에 바인딩할 객체가 동적으로 결정된다. 함
화살표 함수는 function 키워드 대신에 화살표(=>)를 사용해서 간략한 방법으로 함수를 선언할 수 있다. 화살표 함수는 익명 함수로만 사용되기때문에 함수를 호출하기 위해서는 함수 표현식을 사용한다.콜백 함수로도 사용할 수 있다. 이 경우에 일반적인 함수보다 표현식
실행 컨텍스트는 scope, hoisting, this, function, closure 등의 동작원리를 담고 있는 자바스크립트의 핵심 원리이다. 실행 컨텍스트를 이해하고 자바스크립트 코드가 어떻게 동작하는지 알아보자.실행 컨텍스트는 실행 가능한 코드가 실행되기 위해
스코프는 변수, 함수의 이름과 같이 어떤 대상을 다른 대상과 구분하여 식별할 수 있는 유일한 이름을 찾아내기 위한 규칙이다. 자바스크립트는 이 규칙대로 식별자를 찾는다. 자바스크립트 스코프는 아래와 같이 구분된다. 전역 스코프 ( Global scope ) 코드 어디
클로저란? 클로저는 함수를 일급 객체로 취급하는 함수형 프로그래밍 언어에서 사용되는 중요한 특성이다. 자바스크립트 고유의 개념이 아니므로 ECMAScript 명세에 클로저의 정의가 등장하지 않는다. MDN에서는 클로저는 ‘함수와 그 함수가 선언됐을 때의 렉시컬 환경과
동기 어떤 작업이 실행될 때 그 작업이 완료되기 전까지 다음 코드가 실행되지 않는다. 따라서 작업의 순서를 보장되며 작업이 끝날 때까지 결과를 기다릴 수 있다. 비동기 어떤 작업이 실행될 때 그 작업이 완료되지 않더라도 다음 코드를 실행한다. 작업이 오래 걸리는 경우