1/3 TIL

CodHan·2024년 1월 3일

VariableEnvironment (VE)

현재 컨텍스트 내의 식별자 즉, let a = 3 에서 let a를 의미

Hoisting(끌어올리다)

호이스팅의 개념을 적용해 보면 코드 내의 식별자를 전부 위로 끌어 올린다. 그 후 나머지 변수 부분 또는 할당 부분은 그대로 남겨놓는다. 그러면 결과가 달라진다.

예시의 결과를 예상해보고 호이스팅이 적용되었을 때랑 비교해보자.

매개변수의 호이스팅

함수도 마찬가지로 호이스팅이 적용된다. 하지만 함수는 전부 다 적용되는 것은 아니다.

함수 선언문 , 표현식

선언문 즉 function a ( ){ } 이렇게 선언문을 쓰게 된다면 함수 내부 실행 코드 전체가 호이스팅 되기 때문에 코드 전체에 영향을 끼친다. 하지만 표현식 즉 let sum = function (x , y){ } 는 바로 아래 줄 부터 영향을 받기 때문에 표현식을 쓰는 습관을 들이는게 좋다.

Sort(sorting) 배열요소 정렬

같은 배열을 복사해서 정렬을 한다고 가정해보자 원래 배열은 건드리지 말고 똑같은 배열을 복사해서 수정하고 싶다고 했을때 sortedArray = [1,3,5,6] (기존 배열) 을 newArray = sortedArray.sort() 하면 sortedArray도 바뀐 다는 것이다.
그 이유는 메모리의 저장된 데이터 주소값이 같기 때문이고 새로운 배열에 복사 하고싶다면 [...sortedArray](배열을 풀고 다시 묶는 방법) 또는 sortedArray.slice() 를 사용해야 한다.
그래야만 데이터 주소가 따로 저장이 되기 때문에 원래 배열은 냅두고 복사한 배열만 맘대로 사용 할 수 있게된다.

((a,b) => a-b)) 오름차순

배열에서 1번2번을 먼저 비교한다. a에 2번인덱스가 오고 a에 1번인덱스가온다.
그리고 a-b 2번인덱스 - 1번인덱스를 하고 음수일 경우에 2번 index와 1번 index를 바꿔서 배열에 정렬하고 양수일 경우에는 그대로 정렬한다

((a,b) => b-a)) 내림차순

오름차순의 반대로 작동한다.

객체의 sorting

객체의 나이에 접근하고 싶을 때 사진처럼 b.age , a.age 로 접근 할 수 있다.

this

.obj 또는 배열 [ ]로서의 호출이 아닌 this는 무조건 전역객체를 가르킨다. node환경에서는 global 브라우저에서는 window.

Array.from(obj);

배열과 유사한 객체를 배열로 만든다.

부족한 점
불변 객체부터 호이스팅 전까지 , this부분 나중에 다시 회독 필수.

profile
코테, 계획 그리고 KPT

0개의 댓글