본문 바로가기

Language

(4)
클로저란 무엇인가요? 클로저(Closure)란?실행 컨텍스트가 생성되면서 Lexical Environment에는 두가지 객체가 생성이 됩니다. 하나는 Outer Environment Reference이고, 다른 하나는 Environment Record 입니다. Outer Environment Reference는 현재 실행 컨텍스트가 실행되기 전에 생성된 실행컨텍스트의 Lexical Environment를 참조하고 있는 형태를 이루고 있습니다. 그래서 Scope Chain이 가능한 이유가 이때문으로 나와있습니다. 이 상황에서 클로저라는 것은 어떤 함수 A(현재 실행 컨텍스트가 실행되기 전에 생성된 실행 컨텍스트)에서 선언한 변수 a를 참조하는 내부함수 B(현재 실행 컨텍스트)를 외부로 전달할 때, 전달되는 상황은 return으..
실행 컨텍스트(Execution Context)에 대해서 해당 글은, 코어 자바스크립트를 보고 제가 정리한 내용입니다. 좀 더 자세한 내용을 원하시는 분들은 코어 자바스크립트 책을 구매하셔서 보시면 더 많이 이해를 하실 수 있습니다.실행 컨텍스트란(Execution Context)? 무엇인가?실행 컨텍스트에 담기는 내용들을 먼저 설명해 보겠습니다.첫 번째로, Variable Environment입니다. Variable Environment는 현재 실행한 함수의 초기 값들이 스냅샷 형태로 저장되어 있는 것을 의미합니다. 초기값이라는 것은 좀 추상적이니까 풀어서 얘기해 보자면, 매개변수, 변수, 함수명 등등이 포함이 됩니다. 이 부분의 특징은 처음 선언된 상태 그대로 유지가 된다는 것이 특징 중에 하나입니다. 두 번째로, Lexical Environment인데. ..
자바스크립트는 선언과 할당을 어떻게 해줄까? 아래 적힌 내용은 코어 자바스크립트를 참조해서 제 생각과 책 내용을 합친 내용입니다. 더 많은 지식을 얻고 싶으시다면, 코어 자바스크립트를 정독하는 것을 추천드립니다.기본형(Primitive)과 참조형(Reference)자바스크립트의 타입은 기본형과 참조형 두가지로 나뉘어지게 되는데, 기본형은 Number, String, boolean, Symbol, undefined, null 이렇게 여섯가지 그리고 참조형은 객체, 배열, 등등이 존재하고 있습니다. 기본형이라는 것 중에서 중요한 것은 불변성(Immutability)를 띄는 것을 의미하는데, 불변성의 의미를 잘 파악하고 있어야 된다고 생각해요. 왜냐하면, 일단 var a = 10; 이라고 하고 a = 15라고 변경을 해서 console을 찍어보면 15라..
C++ 정리 절차적 프로그래밍과 객체 지향의 차이 절차지향은 순차적인 처리를 중요시합니다. 컴퓨터 처리 구조와 비슷하므로 상대적으로 빠르지만 유지보수가 힘듭니다. 객체지향은 데이터와 동작을 묶어서 생각하고, 코드의 재사용과 유지보수가 쉽다는 장점이 있습니다. 또한, 객체지향은 캡슐화 상속성 추상화 다형성의 4가지 특징이 있습니다. 객체지향의 4가지 특징 캡슐화, 다형성, 상속성, 추상화입니다. 캡슐화는 객체 스스로가 자신의 상태를 책임지며, 해당 객체의 역할 수행에 집중할 수 있도록 자율성을 높이는 방식을 뜻합니다. 상속성은 부모 클래스가 자식 클래스에게 속성과 기능을 물려주어 부모 클래스의 속성과 기능을 동일하게 사용하는 방식입니다. 상속은 자신의 멤버 변수와 멤버 함수를 자식 클래스에게 물려주는 것입니다. 부모 ..