JS 기술면접 준비

최정석·2022년 11월 7일
post-thumbnail

스코프란?

  • 식별자(변수)에 접근할 수 있는 범위
  • 전역 스코프와 지역 스코프로 나눌수 있다.
  • 전역 스코프: 어느 곳에서나 접근이 가능한 범위.
  • 지역 스코프: 해당 지역에서만 접근이 가능한 범위.
    • 함수 스코프: 함수에서 선언한 변수는 해당 함수 내에서만 접근 가능한 것을 의미
    • 블록 스코프: 블록({}) 내부에서 선언된 변수는 해당 블록에서만 접근 가능한 것을 의미
    • lexical 스코프: 변수, 함수가 선언된 곳에 따라 정의되는 스코프 (js)
    • dynamic 스코프: 변수, 함수가 호출된 곳에 따라 정의되는 스코프

호이스팅이란?

  • JavaScript에서 호이스팅(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다.
  • var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화합니다. 반면 letconst로 선언한 변수의 경우 호이스팅 시 변수를 초기화하지 않습니다.

클로저 함수란?

  • 함수와 함수가 선언된 어휘적 환경의 조합, 외부함수의 변수에 접근 가능한 내부함수

  • 사용하는 이유: 상태가 의도치 않게 변경되지 않도록 안전하게 은닉하고 특정 함수에게만 상태 변경을 허용하여 상태를 안전하게 변경하고 유지하기 위해 사용합니다.

  • 모듈패턴 : 모듈 패턴은 JavaScript 에서 중요한 패턴 중 하나이며 가장 일반적으로 사용되는 디자인 패턴이다. 프로젝트의 코드 단위를 명확하게 분리하고 구성하는데 큰 도움이 된다. 클래스를 모방해서 관련이 있는 변수와 함수를 모아 즉시실행함수()로 감싸서 하나의 모듈을 만들어 클로저를 기반으로 동작합니다.

    • 캡슐화 : 정보은닉을 구현하기 위해서 모듈패턴을 사용합니다.
    • 전역변수의 억제
    • 재사용성

자료형

  • 원시자료형
    • 할당시 메모리에 고정된 크기로 저장되고, 변수에 값이 담김
    • 선언, 초기화, 할당 시 값이 저장된 메모리에 직접 접근
    • number, string, boolean, undefined
  • 참조자료형
    • 데이터 크기가 정해지지 않고, 변수에는 값이 저장된 주소가 담김
    • array, object, function

정적타입, 동적타입의 차이

  • 정적타입
    • 타입을 컴파일 시에 결정, 변수의 타입지정 필요
    • C, C#, C++, Java
  • 동적타입
    • 타입지정없이 변수에 값 할당
    • 런타임때 값의 타입에 따라 자동 결정
    • JavaScript, Ruby, Python, SmallTalk

==(동치연산자), ===(일치연산자) 차이점

  • 동치연산자
    • 강제 형 변환 (비교전 두 피연산자를 공통 타입으로 바꾸고 값 비교)
  • 일치연산자
    • 값과 데이터타입 비교

event loop란?

  • 브라우저는 특정 이벤트가 발생하면 이를 감지해 미리 정해둔 작업을 수행한다.여러 이벤트가 동시 발생할경우, 이벤트루프가 실행 순서를 정해준다.
  • event loop는 콜스택에 처리중인 태스크가 없는지, 태스크 큐에 대기중인 태스크가 있는지 반복 확인한다.
  • 콜스택이 비고, 태스크 큐에 대기중인 함수가 있으면 콜스택으로 이동시킨다.

0개의 댓글