명시적 타입 변환이 뭔가요?
명시적 타입 변환 함수를 예를 들어볼 수 있나요?
암묵적 타입 변환이 뭔가요?
truthy / falsy 한 값이 뭔가요?
자바스크립트의 배열은 자료구조의 배열과 같나요?
배열의 메서드는 어떤 종류가 있나요?
Array.isArray
: 전달된 인수가 배열이면 true 아니라면 falseArray.prototype.indexOf
: 원본 배열에서 인수로 전달된 요소를 검색해 인덱스를 반환Array.prototype.includes
: 원본 배열에 인수로 전달된 요소가 존재하는지 확인 후 true, false 반환push
, unshift
, concat
, splice
, slice
, join
, reverse
, fill
, flat
등이 있다.고차 함수에 대해서 아시나요?
forEach 메서드와 map메서드의 차이점에 대해 알고 있나요?
자바스크립트에서 객체란 뭘까요?
함수와 메서드의 차이점에 대해 알고 계신가요?
자바스크립트에서 객체를 생성하는 방법은 어떤 것들이 있나요?
동적 타이핑을 지원하는 자바스크립트에서 데이터의 타입을 크게 2개로 나누는 이유가 있을까요?
근본적으로 크게 세가지 측면에서 다르기 때문
원시값은 변경 불가능한 값 / 객체는 변경 가능한 값
원시값을 변수에 할당하면 확보된 메모리 공간에는 실제 값이 저장 / 객체는 변수에 할당하면 확보된 메모리 공간에는 참조 값이 저장
다른 변수에 할당했을 때 원시값은 값에 의한 전달, 객체는 참조에 의한 전달
값에 의한 전달이 뭔가요?
참조에 의한 전달이 뭔가요?
- 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달
자바스크립트에서 함수를 정의하는 방법은 몇가지가 있나요?
함수 선언문
function add(x, y){
return x + y;
}
함수 표현식
const add = function (x, y){
return x + y;
}
Function 생성자 함수
const add = new Function('x', 'y', 'return x+y');
화살표 함수
const add = (x, y) => x + y;
함수 선언문과 함수 표현식은 어떤 차이가 있나요?
즉시 실행 함수(IIFE)에 대해 알고 있나요? 알고 있다면 아는 내용에 대해 말해보세요
스코프가 뭔가요?
스코프에는 어떤 종류가 있죠?
전역스코프와 지역스코프
함수레벨 스코프와 블럭레벨 스코프
동적스코프와 렉시컬스코프(정적스코프)
렉시컬 스코프를 아시나요? 안다면 렉시컬 스코프는 무엇을 의미하나요?
전역 변수로 변수를 선언하면 생기는 문제점은 무엇이 있을까요?
암묵적 결합(모든 코드가 전역 변수를 참조하고 변경 가능) 허용
긴 생명 주기
스코프 체인 상에서 종점에 존재
- 스코프 체인 상 변수를 검색할 때 가장 마지막에 검색되어 검색 속도가 가장 느림
생성자 함수가 뭔가요?
객체 리터럴로 만들 때와는 무슨 차이가 있죠? 왜 생성자 함수를 사용하나요?
생성자 함수가 객체(인스턴스)를 생성하는 과정에 대해 간략하게 설명해줄 수 있나요?
일급 객체가 뭔가요?
자바스크립트에서 함수가 일급 객체라면, 일급 객체로 뭘 할 수 있나요?
꼬리 질문) 함수형 프로그래밍이 뭔가요?
꼬리 질문) 순수 함수가 뭔가요? 일반 함수와는 어떤 차이가 있죠?
객체지향 프로그래밍은 무엇을 의미하나요?
객체지향 프로그래밍의 특징에 대해 말해볼 수 있나요?
자료추상화
: 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는 것캡슐화
상속
: 새로운 클래스가 기존의 클래스의 자료와 연산을 이용할 수 있게 하는 기능다형성 개념
: 어떤 한 요소에 여러 개념을 넣어 놓는 것으로 일반적으로 오버라이딩(같은 이름의 메소드가 여러 클래스에서 다른 기능을 하는 것)이나 오버로딩(같은 이름의 메소드가 인자의 개수나 자료형에 따라서 다른 기능을 하는 것)을 의미동적바인딩
: 실행 시간 중에 일어나거나 실행 과정에서 변경될 수 있는 바인딩으로 컴파일 시간에 완료되어 변화하지 않는 정적 바인딩과 대비되는 개념 (바인딩 : 식별자와 값을 연결하는 과정)다중상속
: 클래스가 2개 이상의 클래스로부터 상속받을 수 있게 하는 기능자바스크립트는 객체지향 프로그래밍 언어인가요?
프로토타입(프로토타입 객체)이 뭔가요?
[[Prototype]]
이라는 내부 슬롯을 가지고 내부 슬롯의 값은 프로토타입의 참조 또는 null[[Prototype]]
내부 슬롯에는 직접 접근할 수 없지만 __proto__
라는 접근자 프로퍼티를 통해 자신의 [[Prototype]]
내부 슬롯이 가리키는 프로토타입에 간접적으로 접근 가능문제 : https://github.com/junh0328/prepare_frontend_interview
모던 자바스크립트 deep dive
그 외 본문에 표기