JS(10)
-
[JavaScript]자바스크립트_스코프 클로저
💻 핵심 클로져 함수가 속한 렉시컬 스코프를 기억하여 렉시컬 스코프 밖에서도 스코프에 접근가능하도록 해주는 기능 예제 function foo(){ var a=2; function bar(){ console.log(a); } return bar(); } var baz= foo(); baz(); //2 함수 bar()는 foo() 내부 렉시컬 스코프에 존재하고, 이 bar()는 foo() 스코프에 대한 클로저를 가집니다. 변수에 foo()를 대입하여, 반환된 bar()함수를 호출하여, bar() 를 렉시컬 스코프 외부에서 실행 💡 bar()는 foo()의 호출이 끝나더라도, 여전히 해당 스코프에 대한 참조를 가짐 : 클로저 함수는 처음 선언된 곳의 스코프에 대한 참조를 유지 👉 어디에서 해당 함수를 실행하든..
2021.08.09 -
[JavaScript]자바스크립트 블록 스코프
이전 포스팅에서는 자바스크립트의 일반적인 스코프로 함수 기반 스코프를 공부하였습니다. 이번 포스팅에서는 함수 기반 말고 사용가능한 블록 스코프에 대해 정리해보겠습니다. :-D 💻 스코프 역할을 하는 블록 함수 기반 스코프와 달리, 블록 스코프 👉 감싸진 블록 내의 범위로 묶이는 스코프 일반적인 블록 스코프의 예시로는 아래와 같은 for문이 있습니다. for(var i=0;i
2021.08.02 -
[JavaScript]자바스크립트 함수 스코프
스코프 컨테이너 구실을 하는 일련의 '버블' 스코프 안에 확인자(변수 & 함수) 선언 💻 함수 기반 스코프 함수 기반 스코프란, 함수를 기준으로 스코프가 생성됨 function foo(a){ var b = 2; function bar() { var c = 3; } } foo함수 & bar 함수 & 글로벌 스코프 는 자체 스코프 버블 존재 foo 함수 스코프 버블 👉 a, b, c, bar() 포함 bar 함수 스코프 버블 👉 c 포함 글로벌 스코프 버블 👉 foo() 포함 ❗ 스코프 버블 내의 확인자는 외부에서 접근 불가 bar();//ReferenceError console.log(a,b,c); //ReferenceError 함수 스코프 모든 변수가 함수에 속함 함수 전체에 걸쳐 사용 및 재사용 👉 다..
2021.07.31 -
[JavaScript]자바스크립트, 렉시컬 스코프
자바스크립트의 스코프는 아래 두가지 방식으로 동작 렉시컬 스코프 동적 스코프 💻 렉스타임 이전 포스팅에서 살펴 본 것처럼 컴파일러는 토크나이징/렉싱 작업을 수행합니다. 이 렉싱 과정에서 생성된 토큰에 의미를 부여하는데 이 개념이 렉시컬 스코프의 바탕이 됩니다. 👉 렉시컬 스코프 : 렉싱 타입에 정의되는 스코프 + 개발자가 코드 짤 때, 변수와 스코프 블록을 어디서 작성하는가에 기초하여 렉서가 코드 처리 예제 function foo(a){ var b= a*2; function bar(c){ console.log(a, b, c); } bar(b*3); } foo(2); //2, 4, 12 3개의 중첩 스코프(스코프 버블) 글로벌 스코프, 확인자 - foo foo 스코프, 확인자 - a, var, b bar ..
2021.07.28 -
[JavaScript] 자바스크립트 스코프
스코프란? 특정 장소에 변수를 저장하고 나중에 그 변수를 찾는 데에 필요한 규칙 💻 컴파일러 이론 자바스크립트 또한 컴파일러 언어로서, 컴파일러언어의 처리과정 3단계인 컴파일레이션을 수행 💡 토크나이징/ 렉싱 문자열을 토큰으로 만드는 과정 var a =2; 👉 var, a = 2 ; 💡 파싱 토큰 배열을 문법 구조를 반영하여 👉 AST(추상 구문 트리) var a = 2; 의 경우, 변수 선언( : 최상위 노드) 에서 시작 확인자 : a 대입수식 : 2 💡 코드생성 AST를 기계어 집합으로 바꾸어 실행코드로 변경 💻 스코프 이해하기 💡 처리의 수행자 var a=2; 엔진 컴파일레이션 전과정을 책임 컴파일러 파싱, 코드생성의 모든잡일 스코프 선언된 모든 확인자(변수) 검색 목록 작성 및 유지 엄경한 규칙을..
2021.07.20 -
[JavaScript]자바스립트 문법
💻 5.1 문과 표현식 자바스크립트에서의 문 != 표현식 문: 문장 표현식 : 어구 연산자: 구두점/접속사 var a = 3*6; var b=a; b; 자바스크립트에서의 표현식은 "단일한, 특정한" 결괏값으로 계산됨. 위 각 세줄은 표현식이 되기도하고, 표현식이 포함된 문이기도하다. + '선언문' : var a = 3 * 6; 이런식의 변수 선언의 문 + '할당 표현식' : a = 3 * 6; + '표현식 문' : 표현식의 전부이면서 완전환 문 💡 문의 완료 값 모든 문은 완료 값을 가짐. var a = 43; //완료값 : undefined a = 43; //완료값 : 43 선언문의 완료값은 undefined 할당 표현식은 할당 이후의 값이 완료값 ❗ {}블록은 마지막 문/표현식의 완료값이 블록의 완료..
2021.07.18