JavaScript - Map , Set
·
JavaScript
이번 포스팅에서는 자바스크립트에서 제공하는 자료구조 중 하나인 Map(맵)과 Set(셋)에 대해 살펴보도록 하자. Map Set 1. Map Map(맵) 객체는 키(key)와 값(value)의 쌍으로 이루어진 컬렉션이다. 키(key)가 있는 데이터를 저장한다는 점에서 객체(Object)와 유사하지만 기존 객체와 달리 키로 어떤 자료형이든 사용할 수 있다는 점에서 차이가 있다. 👉 Map 객체의 생성 Map 객체는 Map 생성자 함수로 생성한다. Map 생성자 함수에 인수를 전달하지 않으면 빈 Map 객체가 생성된다. Map 생성자 함수는 이터러블(iterable)을 인수로 전달받아 Map 객체를 생성한다. 이때 인수로 전달되는 이터러블은 키와 값의 쌍으로 이루어진 요소로 구성되어야 한다. c..
JavaScript - this? this!
·
JavaScript
이번 포스팅에서는 자바스크립트의 this에 대해 알아보고자 한다. this란? this 바인딩 화살표 함수와 this 1. this란? 일반적으로 객체지향 언어에서 this는 클래스로 생성한 인스턴스 객체를 의미한다. 하지만 자바스크립트의 this는 클래스에서만 사용되는 것이 아니라 어디서든 사용될 수 있으며 상황에 따라 this가 바라보는 대상이 달라지기도 한다. 이러한 특성 때문에 자바스크립트를 공부할 때 혼란스러움을 겪는 개념 중의 하나가 바로 this가 아닐까 싶다. this가 난해한 이유는 바로 상황에 따라 this가 가리키는 대상이 달라지기 때문인데, this가 바라보는 대상이 무엇인지에 대한 실마리는 this가 결정되는 시점에서 얻을 수 있다. 자바스크립트에서 this는 기본적으..
JavaScript - 불변성(Immutability)
·
JavaScript
이번 포스팅에서는 불변성(Immutability)에 대해 알아보고자 한다. Immutable type Mutable type 1. Immutable type 불변성에 대해 알아보기 위해서는 우선 자바스크립트의 변수 타입에 대해 살펴볼 필요가 있다. 자바스크립트의 변수는 크게 원시 타입(Primitive type)과 참조 타입(Reference type)으로 나눌 수 있으며, 원시 타입의 종류는 아래와 같다. Boolean String Number undefined null Symbol (ES6부터 추가) 이러한 원시 타입의 데이터들은 소위 불변성(Immutability)을 갖고 있다고 얘기한다. 실제 변수에 값이 할당되는 과정을 살펴보면서 이해해보도록 하자. let str = "Hello";..
JavaScript - 일급 객체(First Class Object) & 일급 함수(First Class Function)
·
JavaScript
이번 포스팅에서는 일급 객체(First Class Object)와 일급 함수(First Class Function)에 대해 알아보고자 한다. 프로그래밍 언어를 공부하다 보면 "일급 객체" 혹은 "일급 함수"라는 말을 많이 듣게 된다. 과연 어떠한 객체 혹은 함수에게 "일급"이라는 표현을 사용하는 것일까? 우리는 특정 조건을 만족하는 객체들을 "일급 객체"라고 부른다. 컴퓨터 프로그래밍 언어 디자인에서, 일급 객체(First Class Object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. 보통 함수에 인자로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고 한다. 출처 : https://ko.wikipedia.org/wiki/일급_객체 다시 ..
JavaScript - 전역(global)변수 , 지역(local)변수
·
JavaScript
이번 포스팅에서는 전역변수와 지역변수의 개념에 대해 알아보고자 한다. 전역변수(global variable)는 함수 바깥에서 선언된 변수를 얘기하며 프로그램 전체에서 접근이 가능한 변수이다. 이와 다르게 지역변수(local variable)는 함수 내부에서 선언된 변수로 함수의 실행, 종료와 함께 생성되고 소멸되는 변수이다. 지역변수는 함수 바깥쪽에서 접근하는 것이 불가능하다. 아래의 예제 코드를 살펴보면서 전역변수와 지역변수의 차이에 대해 조금 더 이해해보자. // 1번 let a = 1; function aa() { a = 0; } aa() console.log(a) // output : 0 // 2번 let a = 1; function aa() { let a = 0; } aa() console.lo..