13장에서 전달하고자는 내용은 지역, 전역변수에 대한 내용이다.
이는 이미 사전캠프하면서 확실하게 알아둔 내용이라서 중요하다는 걸 알고 있었다. 그러나 용어에 대해 알지는 못했다.
스코프: 자바스크립트 엔진이 식별자를 검색할 때 사용하는 규칙, 계층구조로 연결되며 모든 지역스코프의 최상위는 전역 스코프다.
스코프체인: 스코프가 계층적으로 연결된 것이며 단방향으로 연결.
렉시컬환경: 코드가 어디서 실행되며 주변에 어떤 코드가 있는지.
실행컨텍스트: 코드의 문맥은 렉시컬 환경으로 이뤄지는 데 이를 구현한 것
블록레벨 스코프:함수에 의해 지역스코프가 생성된다. 함수 몸체뿐만 아니라 모든 코드블럭은 지역스코프를 만든다.
렉시컬스코프(정적스코프): 상위 스코프가 동적으로 변하지 않고 함수 정의가 평가되는 시점에 상위 스코프가 정적으로 결정.(자바스크립트는 렉시컬스코프를 따름)
동적스코프: 함수를 정의하는 시점에는 함수가 어디서 호출되는지 알 수 없는데 호출되는 시점에 동적으로 상위스코프 결정
중요!!!!!!! )스코프를 공부하면서 새롭게 알게 된 점을 아래 코드를 예시로 설명해보겠다.
let a=1;
let b=2;
let c=3;
function example(){
let b=5;
console.log(a) //1
console.log(b) //5
console.log(c) //3
function example12(){
let c=10;
console.log(a); //1
console.log(b); //5
console.log(c); //10
};
example12();
console.log(a); //1
console.log(b); //5
console.log(c); //3
};
example();
console.log(a) //1
console.log(b) //2
console.log(c) //3
이때는 내가 알고있는 내용처럼 값이 출력된다 하지만
let a=1;
let b=2;
let c=3;
function example(){
let b=5;
console.log(a) //1
console.log(b) //2
console.log(c) //3
function example12(){
let c=10;
console.log(a); //1
console.log(b); //5
console.log(c); //3
};
console.log(a); //1
console.log(b); //5
console.log(c); //3
example12();
};
console.log(a) //1
console.log(b) //5
console.log(c) //10
example();
함수출력 위치를 조금만 바꿔주면 값이 달라진다.
즉, 위 코드는 지역변수값을 할당하고있지만 출력을 먼저하고나서 함수호출에 의해 지역변수가 참조된다는 것을 의미한다.
헷갈리지 않도록 주의하자.
14장은 변수선언 시 주의해야 하는 내용에 대해 전달하고 있다.
아래와 같은 코드는 올바르지 않다.
함수 내부에 출력값을 요구하고있다. 그러나 할당된 값이 없어서 에러가 뜬다.
let x='global'
function foo(){
console.log(x)
let x='logical'
}
foo()
console.log(x)
아래 코드는 머리털나고 처음 본다..
let counter=(function(){
let num=0;
return{
increase(){
return ++num;
},
decrease(){
return --num;
}
}
}());
console.log(counter.num);
console.log(counter.increase);
console.log(counter.increase);
console.log(counter.decrease);
console.log(counter.decrease);
즉시실행함수는 개체를 반환한다는 내용이다.
객체에는 외부에 노출하고 싶은 변수나 함수를 담아 반환한다. 이때 반환되는 객체의 프로퍼티는 외부에 노출되는 퍼블릭 멤버다. 외부로 노출하고 싶지 않은 변수나 함수는 반환하는 객체에 추가하지 않으면 외부에서 접근할 수 없는 프라이빗 멤버가 된다.
15장에서 전달하고자하는 내용은 var에 대한 것이다
이건 당연한 소리니까 생략하겠다.
'자스스터디' 카테고리의 다른 글
[17,18,19]-생성자함수, 일급객체, 프로토타입 (0) | 2024.10.29 |
---|---|
10,11,12장 (0) | 2024.10.21 |
7,8,9장 (0) | 2024.10.17 |