
자바스크립트를 사용해서 개발을 시작한지 꽤 오랜 시간이 지났지만 결과적으로는 자바스크립트의 동작원리도 모르고 각종 메소드들이 가지고 있는 알고리즘도 모른체 그냥 기능을 외워서 기계처럼 찍어내고 있었다. 덮어놓고 지나가면 더 이상의 발전도 없고 문제점만 깊어질거라고 생각

값은 상태를 구성하는 가장 기본적인 데이터 단위이고, 상태는 값들이 모여서 이루는 프로그램이나 컴포넌트의 현재 상황이다. 상태에 대해서는 다음에 자세히 정리해보도록 하고 지금은 값에 대해서 좀 더 자세하게 알아보자.자바스크립트에서는 리터럴이란 값의 표기법을 사용해서 변

1. 클로저란? 클로저란 함수가 정의된 스코프가 아니 다른 스코프에서 함수가 실행되더라도 스코프 밖에 있는 변수를 기억하고 이 외부 변수에 계속 접근할 수 있는 경우를 말한다. 클로저는 JS를 지탱하는 근본적인 기술이기 때문에 클로저가 어디에 있는지 알 필요가 있다.

1. 스코프 1-1. 스코프란? 스코프란 식별자에 접근할 때 규칙이 있는데, 이 식별자 접근 규칙에 유효한 범위를 의미한다. 이러한 스코프는 중첩될 수 있다는 특징이 있고 이 경우에 표현식이나 문(statement)은 해당 레벨의 스코프나 더 바깥 레벨의 변수에만 접

1. 토크나이징? 렉싱? 우선 토크나이징과 렉싱이 어디서 사용되는걸까? 토크나이징과 렉싱은 프로그램이 컴파일러에 의해서 처리되는 과정 중 첫 번째인 소스코드를 토큰으로 쪼개지는 단계에서 사용된다. 이 때 토큰은 다음 단계인 파싱 단계에서 AST를 만드는데 사용된다.

JS의 컴파일를 공부하다가 JS가 선컴파일 후 실행 접근 방식을 취하는 언어이며 이를 입증할 수 있는 세 가지 특징으로 구문 오류, 초기 오류, 호이스팅이 있다는 내용을 보았다. 호이스팅은 저번에 공부를 해서 변수나 함수가 선언되기 전에 호출되면 자동으로 호출 전에 변

스코프와 렉시컬 스코프 그에 따른 클로저에 대해서는 앞에서 꽤 알아봤다.우리가 알고 있는 스코프는 파일 자체에 글로벌 스코프, 함수를 선언하면서 생기는 함수 스코프 등 직관적으로 발생하는 스코프는 익숙하다.그런데 우리가 생각하지 못한 곳에서도 스코프가 발생하는 경우가

지금까지 스코프와 변수의 작동 메커니즘에 대해서 공부를 했고 작동 방식과 여러 관계에 대해서도 어느정도 이해했다. 그 과정에서 우리가 사용하는 JS는 대표적인 예시로 변수의 충돌을 막기 위해서 스코프 중첩을 사용한다고 했는데 이를 스코프 과다 노출 제한이라는 관점에서

하나의 파일 안에 있는 변수, 함수, 클래스 등을 독립적인 단위로 묶어 필요한 곳에서 재사용할 수 있게 만든 코드 조각이다.중요한 것은 단순히 하나로 묶는다고 모듈화가 되는 것이 아니라 데이터의 가시성을 제한하지 않는다면 캡슐화가 되지 않기 때문에 모듈화 역시 성립되지

JS는 여러개의 파일이 존재하고 각각의 파일이 프로그램이 된다.그리고 JS엔진은 실행 시점에 여러개의 파일을 하나로 연결시키는 작업을 하는데 이때 React 컴포넌트와 같은 export/import 키워드를 사용한 ES 모듈의 경우 파일을 하나씩 로딩하고 import