JavaScript/theory

    래퍼 객체(Wrapper Object)란?

    래퍼 객체(Wrapper Object)란?

    래퍼 객체란? 래퍼객체는 이름 그대로, 감싸는 객체이다. 래퍼객체는 원시값과 관련되어 있다. 원시값에는 string, number, bigInt, boolean, Symbol, null, undefined로 7가지가 있다. MDN에 의하면, 원시값의 정의는 객체가 아니면서 메서드도 가지지 않는 불변의 데이터이다. 메서드를 가지지 않는다면서..? const str = 'capital letter'; console.log(str.toUpperCase()); 그런데 실제로는 원시값을 담은 변수에서 메서드를 사용할 수 있었다. 이는 자바스크립트가 원시값에 래퍼객체를 이용해서 객체의 다재다능함을 부여하기 때문에 가능하다. 래퍼객체의 종류, 동작 순서 래퍼객체에는 String, Number, Boolean, Sym..

    [자바스크립트] V8 엔진의 메모리 관리 이해하기

    [자바스크립트] V8 엔진의 메모리 관리 이해하기

    [자바스크립트] 비동기 작업, 이벤트 루프와 태스크 큐 이전 글 [자바스크립트] 동기와 비동기 동기와 비동기 동기 Synchronous : 동시에 발생하는 순차적, 직렬적으로 태스크를 수행한다. 요청을 보냈다면, 응답을 받아야 다음 동작이 이루어진다. 순차 gobae.tistory.com 앞선 비동기에 대한 포스팅에서, 이벤트 루프와 태스크 큐를 통한 비동기의 이해를 위해 잠깐 자바스크립트 엔진이 등장했었다. 이번에는 자바스크립트 엔진을 좀 더 자세하게 이해해보자. 먼저 stack, heap 메모리의 차이를 알아야 한다. 스택 스택은 함수 호출 시마다 지역 변수, 매개변수, 리턴값 등이 쌓이는 공간이다. 힙 힙은 동적으로 할당되는 메모리 공간이다. malloc, new 키워드 등으로 할당이 되며, 힙 영..

    [자바스크립트] 일반 객체 다루기

    이전 글 [객체] 자바스크립트에서 객체를 생성하는 다양한 방법 객체 객체란, key:value 쌍을 저장하는 자료구조로, 하나의 변수에 여러 속성들을 저장할 수 있도록 돕는다. 사실, 자바스크립트의 거의 모든 것들은 객체라고 할 수 있다. 배열, 함수, 객체, 날짜, gobae.tistory.com 객체 자체를 먼저 다뤘어야 했는데, 어쩌다보니 순서가 좀 뒤바뀌게 되었다. 이번 포스팅에서는 자바스크립트에서의 일반 객체(순수 객체)에 대해 정리한다. 객체 자바스크립트에서 객체는 중괄호 {} 를 이용해 만들 수 있다. 각 원소들은 각각 key:value 쌍으로 구성된다. key는 문자형이어야만 하고 value로는 모든 자료형이 허용된다. 객체의 원소는 프로퍼티(property)라고 하며, key는 이름으로 ..

    [자바스크립트] 고차함수와 배열 내장 메서드

    고차함수란 고차함수는, 함수를 인자로 전달받거나, 함수를 결과로 반환 하는 함수이다. 여기서 함수를 결과를 반환하게 되면, 그것은 클로저로 동작한다. 고차함수는, 어떻게 할지의 '절차' 보다는 '무엇을 할지'에 초점을 맞춘다. 자바스크립트에서는 map, filter, forEach, reduce 등 무엇을 할지에 대해 초점을 맞춘 메서드들이 있는데, 이 메서드들에서 break, continue를 사용할 수 없다. -> break, continue는 '절차'를 스킵하거나 /강제 종료하기 위한 명령어이기 때문. 즉 고차함수 메서드들은 원하는 결과를 얻기 위한 '과정'을 중요시한다. 반대로 절차를 중요시하는 대표적인 예로는 반복문이 있는데 반복문은 '무엇을 할지'가 아니라 '어떻게 할지'에 초점을 맞춘다. 그..

    [함수형] 클로저 Closure에 대해 알아보자.

    [함수형] 클로저 Closure에 대해 알아보자.

    클로저 클로저란, 자신이 선언된 렉시컬 환경을 기억하고 참조하는 함수다. MDN에서는, 클로저는 독립적인 (자유) 변수를 가리키는 함수이다. 클로저 안에 정의된 함수는 만들어진 환경을 ‘기억한다’. 라고 한다. 클로저를 이해하기 위해선 우선 스코프를 알아야 한다. 스코프 스코프에 대해서는 간단한 예시만을 다룰 예정이다. 잘 모른다면, [자바스크립트] 렉시컬 스코프 스코프와 스코프 체인 스코프란, 식별자의 유효 범위를 말한다. 스코프 체인이란, 이 식별자의 유효 범위를 뜻하는 스코프가 계층적으로 연결된 것을 의미한다. 함수에서 스코프를 결정하는 gobae.tistory.com 이전에 정리한 스코프에 대한 글을 먼저 보는게 낫겠다. 위의 예시에서 함수 abc는 내부에서 변수 a를 활용한다. 함수 스코프와 같..

    [객체] 자바스크립트에서 객체를 생성하는 다양한 방법

    [객체] 자바스크립트에서 객체를 생성하는 다양한 방법

    객체 객체는 데이터를 key:value 쌍으로 저장하는 자료구조다. 그래서 하나의 변수(식별자)에 여러 데이터들을 저장하여 관리할 수 있다. 사실, 자바스크립트의 거의 모든 것들은 객체다. 배열, 함수, 객체, 날짜, 정규표현식 등등! 원시값을 제외한 값들은 모두 객체다. 물론 모든 객체들에 대해 다루기보단, 모듈의 기반이 되며 key:value의 쌍을 가지는 객체를 중심으로 살펴보자. 먼저 객체를 생성하는 다양한 방법들에 대해서 알아본다! 1. 객체 리터럴 가장 친근한 {}를 이용해서 객체를 만드는 방법이다. const coder = { name: 'jiho', hobby: 'coding', selfIntroduction(){ console.log('안녕하세요? 제 이름은 ' + this.name + ..