개발/JavaScript 10

[JavaScript] 코어 자바스크립트 - 4. this

1. 자바스크립트 this는 다른 언어와 어떻게 다른가요? 다른 객체 지향 언어들에서는 클래스의 인스턴스에서만 this를 사용 가능 자바스크립트는 this를 어디서나 사용 가능하며, 객체와 관한 동작을 수행하기만 하면 메소드라고 부르기 때문에 혼란이 있음 2. 일반 함수와 화살표 함수에서 this가 어떻게 동작하나요? 일반 함수는 따로 this를 바인딩하지 않으면 기본적으로 전역객체를 가리킴 es6에서 등장한 화살표 함수는 this를 바인딩하지 않기 때문에 상위의 this를 가리킴 3. this의 명시적 바인딩, 암시적 바인딩 대해서 설명해주세요. 명시적 바인딩은 call, apply, bind 등의 메소드를 사용하는 방법과 스코프 체인을 이용(상위 스코프에서 var self = this 선언)하는 방법..

개발/JavaScript 2023.03.06

[JavaScript] 코어 자바스크립트 - 3. 이벤트 루프

1. 이벤트 루프에 대해 설명해 주세요. (비동기 처리, 자바스크립트 동시성 처리) 자바스크립트는 싱글 스레드 언어이기 때문에 콜 스택이 하나이지만, 동시에 작업을 처리하기 위해 논 블로킹으로 작업을 수행 그렇기 때문에 비동기 처리가 가능 자바스크립트 엔진이 브라우저 위에서 동작할 때, Web API를 사용할 수 있는데 비동기 처리를 위해 Web API 및 콜백 큐, 이벤트 루프를 이용 이를 통해 자바스크립트는 작업을 동시에 수행할 수 있음 2. 콜 스택에 대해서 설명해 주세요. 자바스크립트 엔진을 이루는 것 중 하나 함수가 호출됐을 때 스택으로 쌓이는 후입 선출의 자료구조 형태 자바스크립트 파일의 어느 부분이 현재 실행 중인지 알 수 있음 3. Web API에 대해서 설명해 주세요. (비동기 처리를 위..

개발/JavaScript 2023.03.06

[JavaScript] 코어 자바스크립트 - 2. 실행 컨텍스트

1. 실행 컨텍스트란 무엇인가요? 코드가 실행되는 데에 필요한 환경 정보가 담긴 객체 2. 실행 컨텍스트의 환경에 대해서 설명해 주세요. 실행 컨텍스트는 3가지로 구성 1. VariableEnvironment 2. LexicalEnvironment 3. ThisBinding 3. 실행 컨텍스트의 생명주기에 대해 설명해 주세요. 실행 컨텍스트는 함수가 실행될 때 생성됨 VariableEnvironment에서는 식별자를 수집 VariableEnvironment를 복사해서 LexicalEnvironment가 만들어짐 LexicalEnvironment에서는 식별자의 데이터에 변화가 생기면 실시간으로 반영 코드가 다 실행되고 함수가 종료되면 실행 컨텍스트도 소멸 4. LexicalEnvironment는 무엇인가요..

개발/JavaScript 2023.02.26

[JavaScript] 함수 선언문과 함수 표현식의 차이 (feat: 호이스팅이 뭔데?)

코어 자바스크립트 책의 실행 컨텍스트 파트를 읽다가 함수 선언문과 함수 표현식의 차이를 깨우치게 되었다. 이 책은 내가 개발을 처음 시작하고 얼마 안 되었을 때 처음 읽었고, 작년 말쯤 또 읽고, 이번에 3번째 읽는 것이다. 처음 읽을 때는 한 페이지 읽는 데 한참을 붙들고 있었는데, 그래도 여러번 보니 예전보단 수월하게 읽혀서 그동안 스스로가 성장한 것 같아 뿌듯했다😊 인프런에서 해당 책의 내용을 다룬 정재남님의 강의도 2번 보았다(2회차 진행 중이다). 실행 컨텍스트가 면접 단골 질문인 것도, 자바스크립트의 핵심 개념 중 하나인 것도 알고는 있지만, 내게는 각종 어쩌구 environment 라는 단어가 잔뜩 나오는 어려운 내용으로 각인되어 있었다. 대강의 흐름은 알았지만 말로 설명하기 어려워서 이번엔..

개발/JavaScript 2023.02.25

[JavaScript] 코어 자바스크립트 - 1. 데이터 타입

1. 자바스크립트의 타입은 어떤 것이 있을까요? 기본형(Primitive Type), 참조형(Reference Type) 2. 기본형과 참조형에는 어떤 타입이 있을까요? 기본형(Primitive Type) : string, number, boolean, undefined, null, symbol 참조형(Reference Type) : Object - Array, Function, Date, RegExp, Map/WeakMap, Set/WeakSet 3. 참조형이라고 부르는 이유는 뭘까요? 데이터 영역에 데이터의 주솟값을 연결하는 방식으로 데이터를 저장하기 때문 참조형은 내부 프로퍼티 값을 변경하면 연결된 데이터 영역이 바뀌게 될 뿐, 참조형 자체의 데이터가 변하는 것이 아님 4. 기본형과 참조형을 구분한..

개발/JavaScript 2023.02.18