내일 배움 캠프 23_05_22 TIL
오늘은 내일 배움 캠프 2주차가 시작이 되었다 새로운 팀원들과 만나게 되었고
JS문법에 관해서 배우는 시간을 갖게 되었다
오늘 배운 JS 문법중에 1주차로는 기본적으로 알고 있던 let var const 변수 선언
for문을 비롯해서 switch case 문 do while문
문자열 과 Boolean 및 배열 선언 논리 연산자 및 다항 연산자 사용과
지역변수 선언 및 전역 변수 선언 을 알고있었기에 추후에 복습 때 부족한부분
더욱 깊게 공부해보기로하며 간단하게 한번 씩 보고 넘어갔고
2주차 강의에서는
Spread Operator 및 콜백 함수와 고차 함수에 관해서 배웠고
배열로 함수를 할당하고 저번에 프로젝트를 할 때 사용했었던
filter()함수 및 map()함수와 Set()함수를 배웠다
3주차 강의부터는 조금 새로운 내용들이라 더 집중해서 강의를 들었는데
기본형 데이터와 참조형 데이터의 차이
1.복제의 방식
a 기본형 : 값이 담긴 주소값을 바로 복제
b 참조형 : 값이 담긴 주소값들로 이루어진 묶음을 가리키튼 주소값을 복제
2.불변성의 여부
a 기본형 : 불변성을 띔
b 참조형 : 불변성을 띄지 않음
기본형 변수 복사는 다른 값을 가지지만
참조형 변수 복사의 결과는 같은 값을 가짐(같은 주소를 참조하기 때문에)
undefined는 값이 있어야 하는데 없는 경우 undefined가 나온다
호이스팅에 관한 개념과 콜 스택
호이스팅 : 1. 변수정보 수집을 모두 마쳤더라도 아직 실행 컨텍스트가 관여할 코드는 실행 전의 상태
(JS 엔진은 코드 실행 전 이미 모든 변수정보를 알고 있는 것)
2. 변수 정보 수집 과정을 이해하기 쉽게 설명한 **‘가상 개념’**
콜 스택 : 실행 컨텍스트란 실행할 코드에 제공할 환경 정보들을 모아놓은 객체라고 했었죠. 그 객체. 즉, 동일 환경에 있는 코드를 실행할 때 필요한 환경 정보들을 모아 컨텍스트를 구성하고 이것을 위에서 설명드린 ‘스택’의 한 종류인 콜스택에 쌓아올립니다. 가장 위에 쌓여있는 컨텍스트와 관련된 코드를 실행하는 방법으로 코드의 환경 및 순서를 보장할 수 있다.
// ---- 1번
var a = 1;
function outer() {
function inner() {
console.log(a); //undefined
var a = 3;
}
inner(); // ---- 2번
console.log(a);
}
outer(); // ---- 3번
console.log(a);
위 함수가 실행되게 되면
코드실행 → 전역(in) → 전역(중단) + outer(in) → outer(중단) + inner(in) → inner(out)
+ outer(재개) → outer(out) + 전역(재개) → 전역(out) → 코드종료 이러한 순서로 실행이된다.
실행요소와 실행 컨텍스트의 객체인
1.VariableEnvironment
a 현재 컨텍스트 내의 식별자 정보(recode)를 갖고있다.
b. 외부 환경 정보 (outer)를 갖고있다
c. 선언 시점 LexicalEnvironment의 snapshot
결국, 실행 컨텍스트를 생성할 때, VE에 정보를 먼저 담은 다음,
이를 그대로 복사해서 LE를 만들고 이후에는 주로 LE를 활용한다.
2.LexicalEnvironment
a. VariableEnvironment와 동일하지만, 변경사항을 실시간으로 반영한다.
LE는 다음 2가지 정보를 갖고있다.
1.record(=environmentRecord) <- 이 record의 수집과정이 hoisting
2.outer(=outerEnvironmentReference)
에 대해서 알게 되었고
함수 정의의 방식에 대해서 알게 되었는데
1. 함수 선언문
ex
function a () {}
a();
2. 함수 표현식
var b = function ()
b();
이 때 함수 선언식 보다는 함수 표현식을 사용해야 협업할 때 오류가 나는
부분을 줄일 수 있기에 표현식을 사용하는 것이 좋다는 것을 알게되었고
이 이후에는 특강이 잡혀있기에
오늘은 3주차 중간부분인 record와 호이스팅 부분까지 강의를 듣게되었다
3주차 부터는 그래도 새롭게 알게되는 부분들이 있어서 더욱 집중해서 들으면서 내것으로 만들어 가야겠다고
생각하였다.