Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 에릭노이먼
- 출처 : 코딩앙마
- https://product.kyobobook.co.kr/detail/S000001952246
- 쏙쏙들어오는함수형코딩
- 김영한쌤
- 갈길이 멀구나
- 에릭 노먼드
- 생코님Redux
- 고등애플
- 출처 : 자바스크립트 딥다이브
- 쏙쏙 들어오는 함수형 코딩
- 출처 : 코딩애플
- 자바스크립트 딥다이브
- 함수형 코딩
- 이웅모
- 클린코드다시읽기
- 로버트 C마틴
- 나는 flux좋아...
- 유틸리티타입은 공식문서 자주 보자
- 리엑트를 다루는 기술
- 출처는 코딩애플
- 흥달쌤
- 큰돌의 CS책
- 출처 : 한입크기로 잘라먹는 타입스크립트
- 쏙쏙 들어오는 함수형코딩
- 쏙속 들어오는 함수형코딩
- 에릭 노이먼
- 출처는 코딩앙마
- 오종택개발자님
- 출처 : https://www.boostcourse.org/
Archives
- Today
- Total
틈틈히 메모중
[자바스크립트] 딥다이브 ) 스코프 본문
스코프 (scope, 유효범위)
ㄴ식별자가 유효한 범위
ㄴ자바스크립트 엔진이 식별자를 검색할 때 사용하는 규칙
ㄴ네임스페이스(같은 공간에서 같은 이름 식별자 사용불가)
- 1) 스코프의 종류
*전역(global) : 코드의 가장 바깥영역 (함수바깥)
*지역(local) : 함수 내부
ㄴ변수는 자신이 선언된 위치(전역인지 지역인지)에 따라 스코프가 결정됨
ㄴ전역변수: 전역에서 선언된 변수(어디서든 참조가능)
ㄴ지역변수 : 지역에서 선언된 변수 (함수내와 해당함수의 하위 지역 스코프에서만 유효함)
- 2) 스코프 체인
ㄴ스코프가 함수의 중첩에 의해 계층적 구조를 가짐
ㄴ상위스코프 변수는 하위스코프에서 참조가능
ㄴ하위스코프 변수는 상위스코프에서 참조불가
- 3) 함수, 블록 레벨 스코프
* 블록레벨스코프 (block level scope) : 모든 코드블록 (if, for while, try/catch...)이 지역스코프가 됨
* 함수레벨 스코프 (function level scope) : var키워드 변수는 오로지 함수내만을 지역스코프로 인정함
var n = 1; //전역변수
if(true){
var n = 10; //전역변수, var는 코드블록안을 지역스코프로 인정하지 않고 함수내만을 지역스코프로 인정함
}
console.log(n) //10
- 4) 렉시컬 스코프
* 동적 스코프 (dynamic scope) : 함수가 호출되는 시점에 동적으로 상위스코프를 결정함
* 렉시컬 (정적) 스코프 (lexical scope = static scope): 함수정의가 평가되는 시점에 상위스코프가 정적으로 결정됨
ㄴ자바스크립트는 렉시컬 스코프를 따르기 때문에, 함수를 어디서 정의했는지에 따라 상위스코프를 결정함
'BoOk > JS deep dive' 카테고리의 다른 글
[자바스크립트] 딥다이브) let, const 키워드 / 블록레벨 스코프 (2) | 2023.06.14 |
---|---|
[자바스크립트] 딥다이브 ) 전역변수의 문제점 (0) | 2023.06.14 |
[자바스크립트] 딥다이브) 함수 (0) | 2023.05.24 |
[자바스크립트] 딥다이브) 원시값과 객체의 비교 (0) | 2023.05.17 |
[자바스크립트] 딥다이브) 객체 리터럴 (0) | 2023.05.01 |