기술면접 8

[JavaScript] 코어 자바스크립트 - 8. 클래스

1. 클래스에서 Object.create에 대해서 설명해 주세요. Object.create()는 새로운 객체를 생성하는 메소드 이 메소드는 인자로 전달된 객체를 상속하기 때문에, 기존 객체의 프로퍼티와 메소드를 그대로 사용할 수 있음 2. Object.create 함수는 클래스와 어떤 관계가 있을까요? 모두 상위 객체, 클래스를 상속하는 새로운 객체를 만들 수 있는 공통점이 있음 Object.create는 인자로 어떤 객체를 전달하는지에 따라 원하는 객체를 상속하는 새로운 객체를 생성 클래스에서는 extends 키워드를 사용해 상속 관계를 정할 수 있음 3. Object.create와 new Object는 어떻게 다를까요? Object.create로 객체를 생성하면 인자로 넣은 객체를 상속하는(프로토타..

개발/JavaScript 2023.06.18

[JavaScript] 코어 자바스크립트 - 7. 프로토타입

1. 객체란 무엇인가요? 키(key)과 값(value)으로 이루어진 프로퍼티(Property)들의 집합 2. 객체가 생성되는 과정에 대해서 설명해주세요. 생성자 함수로 객체를 생성할 수 있음 생성자 함수에 new 연산자를 붙여 호출하면, 새로운 인스턴스가 만들어짐 3. 프로토타입과 프로토의 차이에 대해서 설명해 주세요. 프로토타입은 생성자 함수의 특정 데이터 타입에서 사용할 수 있는 메소드가 담긴 객체 프로토[[prototype]]는 인스턴스에서 생성자 함수의 프로토타입에 접근할 수 있는 통로 역할 4. 생성자 함수에 대해서 설명해 주세요. new 연산자를 붙여서 호출할 경우 쉽게 새로운 객체를 만들 수 있는 방법 유사한 객체를 여러 개 만들 수 있음 첫 문자는 대문자로 쓰고, new 연산자를 붙여서 사..

개발/JavaScript 2023.06.11

[JavaScript] 코어 자바스크립트 - 6. 클로저

1. 클로저에 대해서 설명해 주세요. 어떤 함수에서 선언된 변수를 참조하는 그 함수의 내부 함수를 외부로 전달할 때, 함수의 실행 컨텍스트가 종료된 이후에도 변수에 접근할 수 있는 현상 2. 클로저의 예시를 코드로 작성해 주세요. const outer = () => { let a = 1; const inner = () => { return ++a; } return inner; } const outer2 = outer(); console.log(outer2()); console.log(outer2()); inner 함수 자체를 반환하면, outer 함수의 실행 컨텍스트가 종료된 후에도 inner 함수에 접근할 수 있음 3. 클로저와 스코프는 어떤 관계를 가지고 있을까요? 클로저는 함수의 실행 컨텍스트가 종..

개발/JavaScript 2023.06.07

[JavaScript] 코어 자바스크립트 - 5. 콜백 함수

1. 콜백 함수에 대해서 설명해 주세요. 콜백함수는 제어권을 넘겨준 함수 제어권을 넘겨받은 코드는 인자로 어떤 값을 넘겨줄 지, 언제 호출할 지, this 등에 대한 제어권을 가짐 2. 일급 객체에 대해서 설명해 주세요. 다른 객체들에 일반적으로 적용할 수 있는 연산을 모두 지원하는 객체 인자로 넘겨주기, 함수의 반환값으로 사용하기, 변수에 대입하기 등이 가능할 때 일급 객체라고 부름 3. 콜백 함수는 어디에 쓰이나요? 비동기 처리가 필요한 경우 4. 콜백 함수의 제어권 위임에 대해서 설명해 주세요. 콜백 함수에게 제어권을 위임받은 코드는 인자로 어떤 값을 넘겨줄 지, 언제 호출할 지, this 등에 대한 제어권을 가짐 Ex. forEach, map 등의 메소드에서 정의된 순서로 인자 값을 넘겨줄 수 있..

개발/JavaScript 2023.03.23

[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