본문 바로가기
컴퓨터 지식/IT 기술면접 대비

[IT 면접대비] 개발자 기술면접 대비 🖥️/ 3️⃣ - JavaScript (2)

by 서상혁 2021. 3. 3.

Scope 란 무엇인가요?

변수가 값을 참조할 때 접근할 범위 이고, 흔히 그 접근할 수 있는 범위를 찾는 규칙을 말합니다. 자바스크립트는 함수 코드 블록 내에서 선언된 변수는 함수 내부에서만 유효한 함수 레벨 스코프를 따릅니다.

 

 

 

동적 스코프 VS 렉시컬 스코프

  • 동적 스코프 : 함수가 호출 되는 순간에 상위 스코프를 결정
  • 렉시컬 스코프 : 함수가 선언 되는 순간에 사위 스코프를 결정

 

 

 

this 는 무엇을 의미할까요?

자바스크립트에서 실행하는 환경의 context를 의미하는 객체입니다. 상황에 따라 다르지만 간단하게 예시를 들어보자면 특정 객체 안에서의 this 는 해당 객체를 의미하고, 글로벌한 환경에서의 this는 window 객체를 의미합니다.

 

  • 함수에서 쓰였을 때 : 함수를 실행시킨 곳의 객체
  • 메소드에서 쓰였을 때 : 해당 메서드를 호출한 객체
  • 전역에서 쓰였을 때 : window
  • 생성자에서 쓰였을 때 : 생성자 함수가 생성하는 객체

 

 

 

 

 

자바스크립트의 EC 에 대해 설명해주세요.

자바스크립트 엔진이 시작될 때는 가장 먼저 전역공간에 전역 실행 context 가 생깁니다. 자바스크립트는 싱글 쓰레드 이기 때문에 GEC 는 1개만 생기고, 함수가 실행될 때마다 함수에 맞는 EC를 생성합니다. 이 EC를 생성할 때는 먼저 스코프 체인이 생성되고, 활성객체(Activation Object) 가 생성됩니다. 활성 객체는 argument 나 길이, 변수와 같은 정보를 담고 있는 객체를 뜻합니다. 그리고 this 객체를 바인딩해줍니다.

 

 

 

자바스크립트에서 Prototype이란 무엇인가요?

일단 자바스크립트는 기본 데이터 타입 외에는 모두 객체로 이루어져 있는 언어입니다. 기존 객체를 복사해서 새로운 객체를 생성하는 프로토타입 기반의 언어입니다. 프로토타입 객체는 해당 객체의 원형이 되는 객체라고 이해하고 있고, 자바스크립트의 객체들은 다들 __proto__를 가지고 있습니다. 자바가 클래스를 이용해서 상속이나 다형성을 구현하듯이, 자바스크립트는 프로토타입을 이용해서 그런 특성들을 구현할 수 있고, 자바스크립트에서의 Class 는 사실 Syntax Sugar 일 뿐입니다.

- 프로토타입 이해에 좋은 글 : www.nextree.co.kr/p7323/

 

 


 

참고

- 스코프 : poiemaweb.com/js-scope

- this : zeddios.tistory.com/233

- EC : baeharam.github.io/posts/javascript/jsexecution-context/

 

 


출처

github.com/JaeYeopHan/Interview_Question_for_Beginner

 

JaeYeopHan/Interview_Question_for_Beginner

:boy: :girl: Technical-Interview guidelines written for those who started studying programming. I wish you all the best. :space_invader: - JaeYeopHan/Interview_Question_for_Beginner

github.com

'[IT 면접대비] 개발자 기술면접 대비 🖥️' 게시글의 내용들은 위 깃허브를 출처로 합니다.

위 게시글 깃허브에 들어가보시면 이미 자세한 내용들이 기술되어 있고, 저는 그냥 제 생각을 보태서 한번 다시 정리하는 정도로 생각해주세요! 

 
728x90

댓글