코어 자바스크립트 헷갈리는 부분 정리
·
교재/코어 자바스크립트
1. environment 용어 정리아주 자연스럽고 중요한 고민이에요.처음에 이 개념은 정말 추상적으로 느껴지기 쉬워요.지금 힘들다고 느끼는 이유는 용어들이 많고,그게 언제, 어디서, 어떻게 연결되는지가 감이 안 잡히기 때문이에요.제가 비유와 쉬운 예시로, 꼭 처음부터 차근차근 설명드릴게요.🔍 한 문장씩, **“왜 이런 말이 나오는지”**부터 따라가 보죠.✳️ 용어 정리부터!먼저 헷갈리는 용어 세 개만 먼저 정리할게요.용어 쉬운 말로 바꾸면 설명Lexical Environment“변수 보관 창고”지금 컨텍스트에서 쓸 수 있는 변수들을 저장해둔 공간Environment Record“진짜 변수들이 담긴 상자”변수명이랑 실제 값들이 들어 있는 객체outerEnvironmentReference“바깥 참조 링크..
코어 자바스크립트 | 챕터 7: 클래스
·
교재/코어 자바스크립트
[클래스] 음식 - 과일 - 귤류(감귤,오렌지,자몽,레몬 등) super-superclass / superclass / subclass 어떤 클래스의 속성을 지니는 실존하는 개체를 인스턴스라고 한다 한 인스턴스는 하나의 클래스를 기반으로 바탕으로 만들어진다. 어떤 인스턴스가 다양한 클래스에 속할 수는 있지만 이 클래스들은 모두 인스턴스 입장에서 '직계 존속'이다 인스턴스를 생성할 때 호출할 수 있는 클래스는 하나일 수 밖에 없기 때문이다 더보기🌱 문장 해석부터 차근차근❓ 원문"한 인스턴스는 하나의 클래스를 기반으로 바탕으로 만들어진다. 어떤 인스턴스가 다양한 클래스에 속할 수는 있지만 이 클래스들은 모두 인스턴스 입장에서 '직계 존속'이다. 인스턴스를 생성할 때 호출할 수 있는 클래스는 하나일 수밖에..
코어 자바스크립트 | 챕터 6: 프로토타입
·
교재/코어 자바스크립트
프로토타입 prototype 객체 내부에는 인스턴스가 사용할 메서드를 저장합니다. 그러면 __proto__를 통해 이 메서드들에 접근할 수 있게 됩니다 =prototype이 만든 인스턴스를 __proto__를 이용해 참조할 수 있다(둘은 같은 객체를 바라본다) Person.prototype === suzi.__proto__ 단 suzi.__proto__.getName 은 undefined가 나오는데 이는 suzi.__proto__라는 객체가 getName의 this가 되었기 때문이다 식별자가 정의되어 있지 않을 때는 undefined를 반환한다는 규칙 때문에 undefined가 반환된다 __proto__는 생략 가는한 프로퍼티이다 " new 연산자로 constructor를 호출하면 instance가 만들..
코어 자바스크립트 | 챕터 5: 클로저
·
교재/코어 자바스크립트
클로저 함수를 선언할 때 만들어진 유효범위가 사라진 후에도 호출할 수 있는 함수 이미 생명 주기가 끝난 외부 함수의 변수를 참조하는 함수 자신이 생성될 때의 스코프에서 알 수 있었던 변수들 중 언젠가 자신이 실행될 때 사용할 변수들만을 기억하여 유지시키는 함수 ~'선언될 당시의 lexical environment'는 2장에서 소개한 실행 컨텍스트의 구성 요소 중 하나인 outerEniromentReference에 해당합니다. LexicalEnvironment의 environmentRecord와 outerEnvironmentReference에 의해 변수의 유효범위인 스코프가 결정되고 스코프 체인이 가능해진다고 했습니다. 어떤 컨텍스트 a에서 선언한 내부함수 b의 실행 컨텍스트가 활성화된 시점에는 b의 o..
코어 자바스크립트 | 챕터 4: 콜백 함수
·
교재/코어 자바스크립트
콜백 함수: 다른 코드의 인자로 넘겨주는 함수 함수 X를 호출하면서 '특정 조건일 때 함수 Y를 실행해서 알려달라' 라는 요청을 함께 보내는 것 즉 다른 코드(함수, 메서드)에게 인자로 넘겨줌으로써 그 제어권도 함께 위임한 함수 콜백 함수를 위임받은 코드는 적절한 시점에 콜백 함수를 실행한다 var count = 0; var timer = setInterval(function() { console.log(count); if (++count > 4) clearInterval(timer); },300); timer 해석하기 timer 변수 선언, 여기에 setInterval을 실행한 결과를 할당 setInterval이란 var intervalID = scope.setInterval(func,..
코어 자바스크립트 | 챕터 3: this
·
교재/코어 자바스크립트
this는 실행 컨텍스트가 생성될 때 함께 결정된다 실행 컨텍스트는 함수를 호출할 때 생성된다 - > this는함수를 호출할 때 결정됨 함수가 실행되는 환경(실행 컨텍스트)가 가리키는 대상 객체 전역 공간에서의 this: 전역 객체(전역 컨텍스트를 전역 객체가 생성하기 때문) 자바스크립트의 모든 변수는 특정 객체의 프로퍼티로서 동작한다 특정 객체:L.E(LexicalEnvironment) 실행 컨테스트는 변수를 수집해서 L.E의 프로퍼티로 저장한다 전역 컨텍스트의 경우 L.E는 전역 객체를 그대로 참조한다 전역 변수를 선언하면 자바스크립트 엔진은 이를 전역 객체의 프로퍼티로 할당한다 처음부터 전역 객체의 프로퍼티로 할당한 경우 -> 삭제 가능, 전역변수로 선언한 경우 -> 삭제 불가능 사용자가 의도치 않..
코어 자바스크립트 | 챕터 2: 실행 컨텍스트
·
교재/코어 자바스크립트
실행 컨텍스트(Execution Context) 실행할 코드에 제공할 환경 정보들을 모아놓은 객체 스택(FIFO) 큐(LIFO) 코드를 실행할 때 환경 정보를 모아 컨텍스트를 구성, 이를 콜 스택에 쌓아올렸다가 가장 위에 있는 컨텍스트와 관련있는 코드를 실행한다 흔한 예제(함수 실행) inner outer 전역 컨텍스트 순으로 쌓여서 위에서부터 빠져나간다 VariableEnvironment: 현재 컨텍스트 내의 식별자들에 대한 정보+ 외부 환경 정보, 변경사항이 반영되지 않는 LexicalEnvironment LexicalEnvironment: 변경사항이 실시간으로 반영되는 VariableEnvironment ThisBinding: this 식별자가 바라봐야 할 대상 객체 LexicalEnvironme..
코어 자바스크립트 | 챕터 1: 데이터 타입
·
교재/코어 자바스크립트
기본형 / 참조형 기본형: 숫자, 문자열, 불리언, null, undefined 등 참조형: 객체, 배열, 함수, 날짜, 정규표현식 등 ~기본형은 주솟값을 바로 복제하는 반면 참조형은 값이 담긴 주솟값들리 이루어진 묶음을 가리키는 주솟값을 복제한다~ 비트: 0 또는 1만 표현할 수 있는 하나의 메모리 조각 각 비트는 고유한 식별자를 통해 위치를 확인한다 여러 개의 비트를 묶어 효율적으로 쓸 수 있는데 이를 위해 바이트byte라는 단위를 만들었다 모든 데이터는 바이트 단위의 식별자, 메모리 주솟값을 통해 서로 구분하고 연결할 수 있다 메모리 용량은 가변적으로 필요하기에 우리가 변수를 저장할 때에는 이름:A 값: @5004, 5004 = 'ABC' 이런식으로 저장한다 즉, 문자열 데이터의 변환을 처리할 ..
혼자 공부하는 컴퓨터구조 + 운영체제 [1일차, CH1]
·
교재/혼자 공부하는 컴퓨터구조 + 운영체제
컴퓨터는 0,1 만을 이해한다1. 데이터 (정적인 정보)2. 명령어 (데이터를 움직이고 컴퓨터를 작동시키는 정보)ex) '1' = 데이터, '1을 2번 더하라' = 명령어 컴퓨터의 네 가지 핵심 부품1. CPU2. 메모리3. 보조기억장치4. 입출력장치 메모리: 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품실행하려면 메모리에 저장되어 있어야 한다메모리는 위치가 정돈되어 있고, 효율적으로 관리하기 위해 '주소' 개념을 사용한다 CPU: 컴퓨터의 두뇌, 읽어들인 명령어를 해석하고 실행한다산술논리장치(ALU): 계산기레지스터(register): 임시 저장 장치제어장치(CU): 제어신호 관리 (메모리 읽기&쓰기 제어 신호를 보냄) 보조기억장치: 하드디스크,SSD 등을 말한다. 보관할 프로그램을 저장한다..