[TIL] 0409

yoon Y·2022년 4월 10일
0

2022 - TIL

목록 보기
70/109

호이스팅과 실행 컨텍스트

실행 컨텍스트

실행할 코드에 필요한 환경 정보를 모아놓은 객체로,
함수가 실행될 때 생성되어 스택에 쌓이고, 가장 위의 있는 컨텍스트와 관련있는 코드를 실행한다

생성 과정

함수 실행 → 실행 컨텍스트 활성화(객체 생성) → 호이스팅(내부 환경정보 구성) → 외부 환경정보 구성 → this바인딩

구조

-VariableEnvironment
     ㄴ environmentRecode(스냅샷)
     ㄴ outerEnvironmentReference(스냅샷)

-LexicalEnvironment
     ㄴ environmentRecode 
     ㄴ outerEnvironmentReference

-ThisBinding

호이스팅: 실행 전 코드를 한번 쭉 훑으면서 식별자를 LexicalEnvironment에 순서대로 수집하는 것
스코프: 식별자에 대한 유효범위로, 함수 실행 시 그 함수의 컨텍스트에 담긴 정보만 사용할 수 있다
스코프 체인: 식별자의 유효범위를 안에서부터 바깥으로 차례로 검색해나가는 것

스코프 체인 연결 과정

  1. 전역 컨텍스트가 생성되어 변수, 함수 선언을 수집 후 코드 실행
  2. 실행 중에 이미 수집된 함수 또는, 함수가 할당된 변수가 실행되는 코드를 만나면 해당 내부함수의 컨텍스트 활성화
  3. 내부 함수 자신의 스코프 내부의 식별자들을 환경 레코드에 수집
  4. 외부환경참조속성에 외부 함수의 환경레코드 주소를 연결
  5. 이후 내부 함수에서 함수가 실행문을 만날 경우 1~4번 반복

문자열 관련 함수 학습

기본적인 split(), replace(), join()함수에 대한 이해가 부족해 알고리즘 문제를 풀지 못했다

내가 간과한 특징들

replace('바뀔문자', '바꿀문자')

  • 중복되는 문자열이 있을 때에는 처음 단어만 대체한다
  • 대소문자를 구분한다
  • 그렇기에 정규식을 같이 사용하는게 더 활용도가 좋다

split(구분자)

  • 구분자가 없어져서 나뉘는 것
  • 구분자 앞, 뒤로 요소가 꼭 있어야함 → 앞이나 뒤가 비어있을 경우 배열로 변환될 때 빈 문자가 추가됨
  • 인자로 빈문자를 넣을 시 한 글자씩 분할 됨

join(매개요소)

  • 배열 요소들 사이에 매개요소가 삽입됨
  • 가장 앞 요소가 빈문자면 매개요소가 가장 앞글자로 반환됨
  • 가장 뒤 요소가 빈문자면 매개요소가 가장 뒤글자로 반환됨
    *문자열 split을 하고 뒤이어서 join을 할 경우 특정 문자가 대치되는 현상이 된다

slice(begin,end)

  • 문자열을 중간에서 자른 것을 반환 → 원본은 바뀌지 않고 중간을 추출만 하는 것
profile
#프론트엔드

0개의 댓글