[220824] 오늘의 배움(TIL) - JavaScript

💛 nalsae·2022년 8월 24일
1

📚 오늘의 배움(TIL)

목록 보기
33/84
post-thumbnail

🔶 JavaScript

  • 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 등의 메서드를 뭐라고 부르고, 어떤 특징이 있는가?

: 매개변수로 콜백 함수를 전달 받아서 조작할 수 있는 고차함수

  • 부수 효과를 발생시키지 않는 메서드를 사용해야 하는 이유는 무엇인가?

: 성능 면에서 값을 변경하는 것보다 새롭게 메모리에 할당하는 것이 더 바람직함
: 함수형 프로그래밍에서 추구하는 순수 함수를 지향하려면 외부 상태의 참조 및 변경을 최대한 지양해야 함

profile
𝙸'𝚖 𝚊 𝚍𝚎𝚟𝚎𝚕𝚘𝚙𝚎𝚛 𝚝𝚛𝚢𝚒𝚗𝚐 𝚝𝚘 𝚜𝚝𝚞𝚍𝚢 𝚊𝚕𝚠𝚊𝚢𝚜. 🤔

0개의 댓글