📌 모듈이란? 모듈이란 여러 기능들에 관한 코드가 모여있는 하나의 파일을 말한다. 모듈을 사용하면 유지보수의 편리함이 커지고 재사용성이 높아진다. 📌 CommonJS - 자바스크립트를 서버사이드및 데스크탑 어플리케이션에서지원하기 위해서 만들어졌다.
📌 new의 동작방식 자바스크립트에서는 `new` 연산자를 통해 함수를 생성자로 호출할 수 있고 그에 따라 새로운 객체를 생성할 수 있다. 다음과 같은 과정으로 이루어진다. 1. 빈 객체를 생성한다. 2. `[[Prototype]]` 속성을 생성자 호출할 함
📌 '==' 와 '===' 둘 다 동일한 비교를 하지만 엄격한 동등 비교 연산자(===)의 경우, 타입변환이 일어나지 않으며 타입이 일치해야 한다. '' == '0' // false 0 == '' // true
📌 IIFE (Immediately-Invoked Function Expression) - 즉시-실행 함수 표현식 - 함수 표현식을 즉시 실행하는 것을 말한다. 📌 사용 이유 - 보통 전역 스코프(Global Scope)를 오염시키지 않기 위해서 사
📌 스코프 - `var`은 함수 스코프, `let`과 `const`는 블록 콘서트를 갖는다. 📌 호이스팅 - `var`은 함수 스코프의 최상단으로 호이스팅되고 선언과 동시에 `undefined`로 초기화된다.
📌 this의 바인딩 우선순위 1. `new`를 사용했을 때 해당 객체로 바인딩됨 var name = "global"; function Func() { this.name = "Func"; this.print = function f() {
📌 클로저 - 함수가 속한 렉시컬 스코프를 기억하여 함수가 렉시컬 스코프 밖에서 실행될 때도 그 스코프에 접근할 수 있게 하는 기능을 말한다.``` function outer() { var a = 2; function inner() {
📌 호이스팅(hoisting) - 변수 및 함수 선언문이 스코프 내의 최상단으로 끌려올려지는 현상을 말함 - 주의 : 선언문이 올려지는것이지 대입문은 끌여올려지지 않는다. console.log(a); var a = 2;
📌 Scope(스코프) - 자바스크립트 엔진이 참조의 대상이 되는 식별자(Identifier)를 검색할 때 사용하는 규칙의 집합이다. - 어떤 변수를 사용하거나 호출하려고 할 때 해당하는 식별자로 사용하는데, 그 식별자를 검색하는 메커니즘이라고 이해하면
📌 이벤트 버블링 - 하위 엘리먼트에 이벤트가 발생할 때, 그 엘리먼트부터 시작해서 상위요소까지 이벤트가 전달되는 방식을 말한다.
📌 AJAX(Asynchronous Javascript And XML) - 비동기적으로 JS를 사용해서 데이터를 받아와 동적으로 DOM을 갱신 및 조작하는 웹 개발 기법을 의미한다. 📌 AJAX 동작과정
📌 CI(Continuous Integration) - CI(지속적 통합)은 빌드와 테스트를 자동화해서 공유 저장소에 병합시키는 프로세스를 말한다. - git과 같은 버전관리 시스템을 사용할 때, 여러명의 개발자가 하나의 공유 저장소를 사용하는 경우가
📌 모듈 번들러(Module bundler) - FrontEnd 개발은 모듈 단위로 파일을 엮어서 개발하는 방식이다. - 의존성 처리, 모듈이 많아짐에 따른 오버헤드, ES6+의 코드 처리 등의 문제들을 해결하기 위해 등장한 것이 모듈 번들러이다.
📌 DOM(Document Object Model) - 웹페이지를 프로그래밍적으로 제어할 수 있게 해주는 문서 객체 모델 - 최상위 인터페이스로 Node가 있고 아래와 같은 구조를 가진다.
📌 브라우저의 기본 구조 - 사용자 인터페이스(UI) - 브라우저 엔진 - 사용자 인터페이스와 렌더링 엔진 사이의 동작을 제어 - 렌더링 엔진 - 요청한 콘텐츠를 표시 - HTML을 요청하면 HTML과 CSS를 파싱하여 화면에 표시함
📌 SPA vs MPA SPA(Single Page Application) - 하나의 HTML을 기반으로 JavaScript를 이용해 동적으로 화면의 컨텐츠를 바꾸는 방식이다. MPA(Multiple Page Application) - 새로운 페이지를 요청할 때마다