모던 자바스크립트 딥 다이브 스터디를 시작한 박준규씨..
천리길도 한걸음부터! 모딥다 2장에서 나올만한 면접 질의내용을 다져보자!
와! Node.js 쓰시는구나!
변수만 맛보지 말고 식별자, 키워드, 호이스팅, 가비지 콜렉터, 매니지드 언어 기타 등등도 한번 맛보세요~
표현식은 값처럼 쓸 수 있어요
모딥다, 다시 열심히 달려보자. 스코프!
var 변수의 문제점 + 생명주기 등등..
var, let, const의 차이점에 대해서 설명해보세요..
프로퍼티와 어트리뷰트.
먼저, 생성자 함수란 무엇일까?new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수를 말함.new 연산자와 함께 Object 생성자 함수 호출하면 빈 객체를 생성하여 반환함.해당 빈 객체에 프로퍼티나 메서드를 추가해서 객체를 완성함. new 연산자와 함께 호
일급 객체의 특징들은 크게 아래와 같다.변수나 자료구조에 저장 가능함수의 매개변수에 전달 가능함수의 반환값으로 사용 가능무명의 리터럴로 생성 가능하기에, 런타임에 생성 가능함.일급객체 함수 => 함수를 객체와 동일하게 사용할 수 있다는 뜻 여기서 함수와 일반 객체의 차
1. 자바스크립트 객체지향형 언어인 자바스크립트의 특징은 아래와 같다. > - 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어 객체 기반의 프로그래밍 언어 자바스크립트를 이루고 있는 거의 모든 것이 객체임 객체지향 프
ES5부터 추가되었으며, 코드에 더 나은 오류 검사를 적용하는 방법.Strict Mode를 사용하면 암시적으로 선언한 변수를 사용하거나 읽기 전용 속성에 값을 할당하거나 속성을 추가할 수 없다.strict mode의 특징은 아래와 같다.반드시 var, let, cons
자바스크립트의 객체는 아래의 세가지 객체로 분류할 수 있다.ECMAScript 사양에 정의된 객체자바스크립트 실행 환경에 제약없이 사용 가능.전역 객체의 프로퍼티로서 제공ECMAScript 사양에 정의 X.But, 자바스크립트 실행 환경에서 추가로 제공하는 객체.브라우
this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있음.js 엔진에 의해 암묵적으로 생성되며, 코드 어디서나 참조 가능this 바인딩은 함수 호출 방식에 의해 동적으로 결정.(\* this 바인딩 : this(키워드이지만,
그렇다면 소스코드 타입에는 어떤 종류가 있는지 알아보자.최상위 스코프인 전역 스코프 생성.전역 코드 평가시에 전역 실행 컨텍스트 생성.지역 스코프 생성.전역 스코프에서 시작하는 스코프 체인의 일원으로 연결.함수 코드 평가시에 함수 실행 컨텍스트 생성.strict mo
클로저는 자바스크립트의 고유 개념이 아닌, 함수형 프로그래밍 언어에서 사용되는 특성으로,함수와 그 함수가 선언된 렉시컬 환경과의 조합 이라고 할 수 있다.클로저는 이후에 좀 더 자세히 알아보도록 하고, 먼저 렉시컬 스코프부터 순차적으로 알아보도록 하겠다.렉시컬 스코프는
1. 클래스와 생성자 함수 > #### 클래스와 생성자 함수는 객체지향 언어의 상속 구현이 가능하다는 점에서 비슷함. 클래스와 생성자 함수 둘 다 프로토타입 기반 인스턴스를 제공하나, 동작 방식은 서로 다르다. 클래스의 경우 생성자 함수보다 좀 더 엄격하며, 조금
1. 함수의 구분 > #### ES6 이전의 모든 함수는 일반 함수로서 호출할 수 있는 것은 물론, 생성자 함수로서 호출할 수 있다. ES6 이전까지는 JS의 함수는 큰 구분 없이 다양한 목적으로 사용됨. 일반함수로서, 생성자 함수로서도 호출이 가능했으며, 객체에
심벌 값은 다른 값과 중복되지 않는 유일무이한 값.이름의 충돌 위험이 없는 유일한 프로퍼티 키를 만들기 위해서 사용.심벌 값은 Symbol 함수를 호출하여 생성함.문자열, 숫자, boolean, undefined, null 타입과 같은 다른 원시값과 달리 심벌 값은 S
ES6 이전의 순회 가능한 데이터 컬렉션(배열, 문자열, 유사 배열 객체 등)은 통일된 규약 없이 for문, for...in문, forEach 메서드 등의 방법으로 순회가 가능했음. ES6에서는 순회 가능한 데이터 컬렉션을 이터레이션 프로토콜을 준수하는 이터러블로 통일
스프레드 문법은 Array, String, Map, Set, DOM 컬렉션 등과 같이 for ... of 문으로 순회가 가능한 이터러블에 한정되서 사용이 가능하다.스프레드 문법의 결과는 단순한 하나의 값이 아닌 값들의 목록이기 때문에변수에 할당할 수 없다.스프레드는 아
필요한 값만 추출해서 변수에 할당할 때 유용함.배열 디스트럭처링 할당 대상은 이터러블 이어야 하며, 할당 기준은 배열의 인덱스다.또한 배열 디스트럭처링 할당을 위한 변수에 Rest 파라미터와 유사하게 Rest 요소 ...을 사용 할 수 있다.객체의 각 프로퍼티를 객체로
Set과 Map에 대해 알아봅시다.
렌더링이란? > #### HTML, CSS, JS 문법으로 작성된 문서를 파싱하여, 브라우저에 사용자가 식별할 수 있도록 시각적으로 출력하는 것. 파싱 프로그래밍 언어의 문법에 맞게 작성된 텍스트 문서의 문자열을 토큰으로 분해하고, 토큰에 문법적 의미와 구조를 반영하여
HTML 문서의 계층적 구조와 정보를 표현하며, 노드의 타입에 따라 프로퍼티와 메서드를 제공하는 트리형 자료구조.브라우저의 렌더링 엔진은 HTML문서를 파싱하여 브라우저가 이해할 수 있는 자료구조 DOM을 생성한다. HTML요소는 렌더링 엔진에 의해 파싱되어 DOM을
JS와 싱글 스레드 > #### 프로세스가 단일 스레드로 동작하는 방식으로, 처리를 단일 스레드만으로 직렬 처리하는 프로그래밍 방법임. 자바스크립트가 가장 대표적인 싱글 스레드 언어다. 동기 & 비동기 처리 > ## 동기 처리 현재 실행중인 태스크가 종료가 될 때까
브라우저는 처리해야 할 특정 사건이 발생하면 <u style="color: 또한, 이벤트 발생 시 <u style="color: 이벤트와 그에 대응하는 함수를 통해 사용자 <-> 애플리케이션의 상호작용이 가능해짐.이와같이 프로그램의 흐름을 이벤트 중심으
Ajax는 브라우저에서 제공하는 Web API인 XMLHttpRequest를 기반으로 동작.XMLHTTPRequest는 HTTP 비동기 통신을 위한 메서드와 프로퍼티를 제공.Ajax가 등장하며 아래와 같은점들이 개선되었다.웹페이지의 변경에 필요한 데이터만 서버로부터 비
REST는 HTTP를 기반으로 클라이언트가 서버의 리소스에 접근한는 방식을 규정한 아키텍처이며, REST API는 REST를 기반으로 서비스 API를 구현한 것을 의미한다.REST API는 자원, 행위, 표현의 세가지 요소로 구성된다.REST에서 가장 중요한 기본적 원
프로미스의 도입 > ##### 프로미스는 콜백 패턴의 에러 처리와 가독성의 개선을 위해 ES6에 도입되었으며, 비동기 처리 시점을 명확하게 표현할 수 있다는 장점이 있다. 자바스크립트는 비동기 처리를 위한 하나의 패턴으로 콜백함수를 사용하지만, 이는 콜백 헬로 인해
ES6d에서 도입되었으며, 코드 블록의 실행을 일시 중기했다가 필요한 시점에 재개할 수 있는 특수 함수.제너레이터와 일반함수에는 몇가지 차이점이 존재한다.일반 함수의 경우 함수 호출 시 제어권이 함수에게 넘어기 때문에 함수 호출자는 함수 호출 이후 함수 실행을 제어할
에러는 언제든지 발생할 수 있으며, 에러를 방치하게 되면 프로그램이 강제종료되게 된다.에러로 인한 강제종료를 막기 위해서는 try...catch문을 사용해서 대응하면 프로그램이 강제 종료되지 않으며 코드를 계속해서 실행시킬 수 있게 된다.또한 직접적인 에러 상황이 아닌
1. 모듈의 일반적 의미 > 모듈은 애플리케이션을 구성하는 개별적 요소로서 재사용 가능한 코드 조각을 이야기한다. 일반적으로 모듈은 기능을 기준으로 파일 단위로 분리하고, 자신만의 파일 스코프(모듈 스코프)를 가질 수 있어야 함. 또한 모듈의 자산(변수, 함수, 객체 등)은 기본적으로 캡슐화된 상태이다.(비공개 상태) 하지만, 모듈은 애플리케이...