- ES6 이전의 자바스크립트 함수는 어떤 특징이 있는가?
: 구분 없이 일반 함수, 생성자 함수 등의 다양한 목적으로 호출하여 사용되었음
: 그러나 이는 실수를 유발할 수 있고, 성능 면에서도 좋지 않음
- ES6 이후의 자바스크립트 함수는 어떤 특징이 있는가?
: 사용 목적에 따라 함수를 구분하고, 함수의 쓸모 없는 기능을 삭제하여 혼란을 줄이는 방향으로 변화함
- ES6의 메서드 축약 표현은 어떤 특징이 있는가?
: 자신을 바인딩한 객체를 가리키는 내부 슬롯
[[HomeObject]]
를 가짐
:[[HomeObject]]
를 통해서super
키워드의 참조가 가능함
- 화살표 함수는 무엇이고, 어떤 특징이 있는가?
: 기존 함수 정의 방식을 간소화한 것
: 기존 함수보다 표현뿐만 아니라 내부 동작 방식도 간소함
- 화살표 함수는 어떤 상황에서 유용하게 사용할 수 있는가?
: 콜백 함수 내부에서
this
가 전역 객체를 가리키는 문제를 화살표 함수로 해결할 수 있음
- 화살표 함수와 일반 함수는 어떤 차이가 있는가?
: 화살표 함수는 인스턴스를 생성할 수 없는 non-constructor에 해당함, 즉
prototype
프로퍼티가 없고 프로토타입도 생성하지 않음
: 일반 함수는 중복된 매개변수 이름을 선언해도 에러가 발생하지 않지만, 화살표 함수에서는 에러가 발생함
: 화살표 함수는 함수 자체의this
,arguments
,super
,new.target
을 가지지 않음
- 화살표 함수의
this
는 어떤 방식으로 동작하는가?: 화살표 함수에서는 함수 자체의
this
바인딩 값이 없기 때문에 상위 스코프의this
를 그대로 참조함, 즉 화살표 함수가 정의된 위치에 따라this
바인딩이 결정됨
: 만약 화살표 함수의 상위 함수가 화살표 함수라면 제일 가까운 상위 스코프의this
를 참조하게 됨
- 화살표 함수의
super
는 어떤 방식으로 동작하는가?:
this
와 마찬가지로super
바인딩을 가지고 있지 않기 때문에 상위 스코프의super
를 참조하게 됨
- ES6에 추가된 Rest 파라미터는 무엇이고, 어떻게 사용하는가?
: 매개변수 이름 앞에
...
을 붙여서 정의한 것이 Rest 파라미터, 함수에 전달된 인수들의 목록을 배열로 전달 받을 수 있음
: Rest 파라미터는 하나만 선언할 수 있고,length
프로퍼티에 영향을 주지 않음
- ES6에 추가된 매개변수 초기화 기능을 사용하면 어떤 이점이 있는가?
: 자바스크립트 엔진은 매개변수의 개수와 인수의 개수를 체크하지 않기 때문에 기존에는 따로 매개변수에 인수가 전달되었는지 확인해야 함
: 매개변수 초기화 기능을 사용하면 인수가 전달되었는지 확인하는 과정을 간소화할 수 있음
- 배열은 무엇인가?
: 여러 개의 값을 순차적으로 나열한 자료구조
- 배열의 구성 요소에는 무엇이 있는가?
: 배열이 가지고 있는 값인 요소
: 요소의 위치를 나타내는 인덱스
: 요소의 개수, 즉 배열의 길이를length
프로퍼티
- 자바스크립트에서 배열을 어떻게 생성할 수 있는가?
: 배열 리터럴
:Array
생성자 함수
:Array.of
:Array.from
- 객체와 배열의 차이는 무엇인가?
: 값의 순서가 있다면 배열, 없다면 객체
: 객체는length
프로퍼티를 가지지 않음
- 자바스크립트의 배열은 어떤 특징이 있는가?
: 자료구조에서 배열은 동일한 크기의 메모리 공간이 연속적으로 나열된 밀집 배열이지만, 자바스크립트에서의 배열은 연속적으로 이어져 있지 않을 수도 있는 희소 배열
: 즉 자바스크립트의 배열은 일반적인 의미의 배열이 아니라 배열의 동작을 흉내낸 객체
- 밀집 배열과 희소 배열은 어떤 차이가 있는가?
: 밀집 배열은 연속해 있기 때문에 요소 접근이 빠르지만, 요소 삽입과 삭제는 느림
: 희소 배열은 연속해 있지 않기 때문에 요소 접근은 느리지만, 요소 삽입과 삭제는 빠름
- 부수 효과는 무엇인가?
: 함수가 어떤 동작을 수행했을 때 그 결과로 외부 상태의 값에 영향을 미치는 것
- 부수 효과를 발생시키는 배열 메서드에는 무엇이 있는가?
: 원본 배열의 요소 값을 변경하는 메서드들이 해당됨
:push
,pop
,shift
,unshift
,splice
,reverse
,fill
,sort
- 부수 효과를 발생시키지 않는 배열 메서드에는 무엇이 있는가?
: 새로운 배열을 반환하는 메서드들이 해당됨
:concat
,slice
,join
,includes
,flat
,forEach
,map
,filter
,reduce
,some
,every
,find
,findIndex
,flatMap
- 배열 메서드 중
map
,filter
등의 메서드를 뭐라고 부르고, 어떤 특징이 있는가?: 매개변수로 콜백 함수를 전달 받아서 조작할 수 있는 고차함수
- 부수 효과를 발생시키지 않는 메서드를 사용해야 하는 이유는 무엇인가?
: 성능 면에서 값을 변경하는 것보다 새롭게 메모리에 할당하는 것이 더 바람직함
: 함수형 프로그래밍에서 추구하는 순수 함수를 지향하려면 외부 상태의 참조 및 변경을 최대한 지양해야 함