[기술면접] JavaScript 부분 9

Boyoung Lee·2024년 11월 20일

기술면접

목록 보기
28/49
post-thumbnail

<목차>

  1. 일급 객체로서의 함수
  2. Map과 Set

18. 일급 객체로서의 함수

  • 프로그래밍 언어에서 함수를 다른 객체와 동일하게 취급할 수 있는 개념

  • 일급 객체로서의 함수는 자바스크립트의 유연성과 표현력 극대화

  • 함수형 프로그래밍 패러다임에서 함수를 데이터와 동일하게 취급함

  • 불변성, 순수성, 함수조합등의 개념을 쉽게 구현할 수 있음

  • 코드의 재사용을 높이고 버그를 줄이고 테스트와 유지보수를 용이하게 만듦

  • 3가지 특징

    1. 변수나 데이터 구조 안에 할당 가능
    • 함수를 변수에 할당 할 수 있음
    • 함수를 값처럼 다룰 수 있음
    • 변수에 저장되는 다른 데이터 타입과 동일하게 함수도 저장 할 수 있음
    const greet = function() {
      console.log("Hello!");
    };
    1. 함수의 인자로 전달 가능
    • 함수를 다른 함수의 인자로 전달 가능
    • 콜백 패턴과 같은 고차함수를 구현 할 수 있음
    • 비동기 처리나 함수의 조작, 행동의 제어 등 다양한 상황에서 유용하게 사용
    function processFunction(func) {
     func();
    }
    
    processFunction(greet);  // "Hello!" 출력
    1. 함수의 반환 값으로 사용 가능
    • 다른 함수를 반환 할 수 있음
    • 함수의 생성을 동적으로 조정할 수 있음
    • 클로저나 부분 적용 같은 고급 함수 기법을 가능하게 함
    function multiplier(factor) {
      return function(x) {
        return x * factor;
      };
    }
    
    const double = multiplier(2);
    console.log(double(5));  // 출력: 10

Q. 일급 객체로서의 함수가 어떤 의미인지, 왜 중요한지 설명해주세요.

19. Map과 Set

Map

  • 객체
  • 키와 쌍으로 데이터를 저장하는 자료구조
  • 키에는 다양한 타입(객체포함)을 사용할 수 있음 => 객체 리터럴이 제공하지 못하는 유연성 제공
  • 요소의 삽입 순서를 기억하고 이 순서대로 반복 작업을 수행
  • 데이터를 키와 관련된 값의 쌍으로 관리할 때 유용 ex) 사용자 ID와 사용자 정보를 연결할 때 활용

사용 방법

  1. 생성과 추가: Map 객체를 생성한 후, set 메소드를 사용하여 키와 값을 추가합니다.
let map = new Map();
map.set('name', 'John');
map.set('age', 30);
  1. 조회: get 메소드를 사용하여 키에 해당하는 값을 조회합니다.
console.log(map.get('name')); // John
  1. 삭제 : delete 메소드를 사용하여 키와 그 값을 삭제합니다.
map.delete('age');
  1. 크기 확인: size 프로퍼티를 사용하여 요소의 수를 확인합니다.
console.log(map.size); // 1
  1. 존재 여부 확인: has 메소드를 사용하여 키가 Map에 있는지 확인합니다.
console.log(map.has('name')); // true
  1. 전체 삭제: clear 메소드를 사용하여 모든 요소를 삭제합니다.
map.clear();

Set

  • 객체
  • 중복을 허용하지 않는 값을 모아 놓은 컬렉션
  • 각 값이 유일하다.
  • 어떤 값이 집합에 이미 존재하는지 쉽게 테스트 할 수 있음
  • 값의 삽입 순서도 유지
  • 유일한 항목의 목록을 유지할 때 유용 ex) 방문한 웹사이트의 URL을 중복없이 저장하거나, 소셜 네트워크의 친구 목록을 관리할 때 사용

사용방법

  1. 생성과 추가 : Set 객체를 생성한 후, add 메소드를 사용하여 값을 추가합니다.
let set = new Set();
set.add('apple');
set.add('banana');
  1. 존재 여부 확인: has 메소드를 사용하여 값이 Set에 있는지 확인합니다.
console.log(set.has('apple')); // true
  1. 삭제: delete 메소드를 사용하여 값을 삭제합니다.
set.delete('banana');
  1. 크기 확인: size 프로퍼티를 사용하여 요소의 수를 확인합니다.
console.log(set.size); // 1
  1. 전체 삭제: clear 메소드를 사용하여 모든 요소를 삭제합니다.
set.clear();

Q. Map과 Set에 대한 개념과 각각에 대한 활용하는 방법을 설명해주세요.Map과 Set에 대한 개념과 각각에 대한 활용하는 방법을 설명해주세요.

profile
정리정돈을 잘하는 개발자가 꿈

0개의 댓글