본문 바로가기

Study/JavaScript7

You don't know JS yet(2장 2.1~2.2) Chapter 1 스코프시작 전에 내가 궁금했던 건 보라색으로 칠하고 밑에 답을 달았다.js엔진이 어떻게 변수를 조직하고 관리하는지 자세히 알지 못한채로 코드를 작성한다.그래서 우리가 알아야 할 것은주어진 구문에서 접근 가능한 변수를 js엔진이 어떻게 결정하는지?이름이 같은 두 변수가 있을 때 어떻게 처리하는지?이 두가지를 잘 알아야하는데 이 질문들의 답은 스코프에 있다.(2.2장에서 다룰거임)1.1 책에 대하여2부에선 스코프 시스템 , 클로저 , 모듈 디자인 패턴의 강력함에 대해 알아본다.js는 컴파일 언어인지 인터프리터 언어인지는 ECMA에 정의된 바가 없고스크립트 언어로 분류된다**.**그런데 실제 JS는 실행 전 별도의 단계에서 파싱 , 컴파일이 일어난다.js에서 함수는 일급값(first-clas.. 2025. 2. 27.
You don't know JS yet(1장 4) 4.1 첫번째 기둥 : 스코프와 클로저함수나 블록 단위로 변수의 스코프(유효 범위)를 한정 짓는 것은 모든 프로그래밍 언어의 근본적인 특징이다.스코프는 양동이 , 변수는 넣을 구슬 스코프 : 변수와 함수가 유효한 범위즉 , “어떤 변수나 함수에 어디서 접근할 수 있냐?” 하는 범위스코프 모델이 뭔데?자바스크립트에서 스코프(Scope) 는 변수에 접근할 수 있는 유효 범위를 의미함. 스코프 모델은 크게 렉시컬(정적) 스코프와 다이나믹(동적) 스코프로 나뉘는데, 자바스크립트는 렉시컬 스코프(Lexical Scope) 를 따름.1. 렉시컬 스코프(Lexical Scope, 정적 스코프)렉시컬(Lexical) - “문법적” | 코드를 작성할 때 결정된다는 의미스코프 - 범위 (결계)"변수를 찾을 때, 함수가 선.. 2025. 2. 20.
You don't know JS yet(3-2~4) 클로저,this,prototype 클로저 전에 알아야 할 내용🔥 콜 스택(Call Stack)이 뭐냐?자바스크립트 엔진이 함수 실행을 관리하는 공간LIFO(Last In, First Out) 구조 → 마지막에 들어온 함수가 먼저 실행 완료됨함수가 호출될 때 스택에 쌓이고, 실행이 끝나면 스택에서 제거됨⚙️ 콜 스택 동작 방식함수 호출 → 콜 스택에 push(쌓임)함수 실행 완료 → 콜 스택에서 pop(제거)비동기 함수 (setTimeout, fetch 등) → 콜 스택에서 빠지고 Web APIs → Task Queue → Event Loop 통해 실행Heap 영역이 뭐냐?런타임 중에 동적으로 메모리 할당하는 공간크기가 가변적이라 필요할 때 메모리를 할당하고, 필요 없으면 해제됨JS에서 객체(Object)나 함수(Function) 같은 .. 2025. 2. 13.
You don't know JS yet(3-1) 이터레이션 3.1 이터레이션일단 이 개념은 ES6부터 도입 되었다.단어 의미 분석 실제 의미이터러블 (Iterable)Iter(반복) + able(가능)반복할 수 있는 객체 (for문에서 사용 가능)이터레이터 (Iterator)Iter(반복) + or(~하는 것/사람)반복을 수행하는 객체 (next()로 값 꺼내는 역할)이터레이션 (Iteration)Iter(반복) + ation(행위, 과정)반복하는 과정 자체 (for문 실행 과정)💡 즉,이터러블(Iterable) = 반복 가능한 객체이터레이터(Iterator) = 반복을 수행하는 객체이터레이션(Iteration) = 반복 하는 행위, 과정1.이터러블(Iterable) : 반복할 수 있는 객체“반복할 수 있는 객체” , 즉 for...of 문에서 사용할 수 있는.. 2025. 2. 13.
You don't know JS yet(2) 2.1 파일은 프로그램입니다.JS에서는 파일 각각이 별도의 프로그램이다.독립적은 .js 파일 여러개를 하나의 프로그램으로서 작동시키는 유일한 방법은전역스코프를 사용해 파일 간 상태를 공유하고 공통으로 사용하는 기능을 접근할 수 있도록 만드는 방법 뿐이다.전역 스코프 (Global Scope)코드 어디서든 접근 가능한 변수 및 함수가 정의되는 범위.var는 window(브라우저)나 global(Node.js)에 등록되지만, let과 const는 해당 블록 스코프JS는 각 모듈을 별도로 처리한다.파일 하나를 제3의 작고 독립적은 프로그램(파일)과 협력해 전체를 작동시키는 고유한 작은 프로그램이다.2.2 값JS에서 값은 크게 원시타입, 객체타입으로 분류 된다.원시 타입 (Primitive Type)값 자체를 .. 2025. 2. 6.
You don't know JS yet(1.5~1.8) 1.5 하위 호환성과 상위 호환성JS를 지탱하는 기본 원칙 중 하나는 하위 호환성 보장이다.그런데 많은 개발자들이 하위호환성을 잘 모르고 상위호환성 개념과 혼동하기도 한다. 1. 하위호환성(Backward Compatibility)정의: 새로운 버전의 시스템이나 소프트웨어가 이전 버전과 호환되는 능력.특징:기존 코드나 기능이 새로운 환경에서도 문제 없이 작동함.사용자 입장에서 업데이트 시 추가 작업이 거의 없음.예시: JS는 과거에 작성된 코드가 최신 브라우저에서도 작동하도록 설계됨.2. 상위호환성(Forward Compatibility)정의: 현재 버전의 시스템이나 소프트웨어가 미래의 버전과 호환되는 능력.특징:미래의 기능이나 표준을 대비해 설계됨.보통은 제한적이며, 완벽한 구현이 어려움.예시: 새로운.. 2025. 1. 23.