javascript(20)
-
[Double Linked List] JS로 구현하기 2020.05.28
-
[Linked List] JS로 구현하기 2020.05.28
-
[Spread Operator] ...을 이용하여 서로 다른 배열이나 객체를 합치자
배열 합치기 const fruits = ["apple", "banana", "kiwi"]; const berry = ["strawberry", "blackberry", "grapeberry"]; const fruits = ["apple", "banana", "kiwi", ...berry]; 객체 합치기 const fullName = { fName: "Tom", lName: "Cruise" }; const actor = { ...fullName, age: 50, genre: "Action" }; *객체를 합칠 때 위에서처럼 ...를 쓰면 fullName의 원소들과 actor의 원소들이 같은 레벨에 위치하게 되지만, const actor = { fName: "Tom", lName: "Cruise", age:..
2020.05.24 -
[Hash Table] 배열과 달리 비연속적인 공간에 데이터를 저장
배열이 데이터를 메모리에 연속으로 따닥따닥 보관했다면, 해시테이블은 메모리 이곳저곳에 랜덤으로 자료를 보관한다. 해시테이블은 언어에 따라 명칭이 다르지만, 모두 가지고 있는 중요한 자료구조다. 해시테이블은 key-value 쌍으로 이루어져 있는데, 여기서의 key는 배열에서 숫자 인덱스 역할을 한다. 배열은 데이터들이 0번칸부터 차례로 존재했기 때문에, 맨뒤 원소를 제외한 데이터의 추가/삭제를 하려면 인덱스 전체를 다시 싹 뜯어고쳐야하므로 O(n)의 시간이 소요됐다. 하지만 해시테이블은 key를 Hash Function에 넣어서 나온 해시를 메모리 주소로 하는 장소에 데이터를 보관하기 때문에, 주소의 중복만 일어나지 않는다면 O(1)의 시간복잡도를 가진다. 다시 말해, 같은 key값은 언제나 같은 해시를..
2020.05.22 -
Context, Instantiation
Context : 문학에서는 "문맥"이라면, 프로그래밍에서는 현재 이 오브젝트가 document상 어느 위치에 있는지 알려준다. this 키워드 사용. 만약 어떤 함수가 {} 객체 내 속성으로 정의되어 있고 그 함수 내에서 this를 사용한다면, 해당 this는 객체 내 함수만을 가리킨다. const obj = { myFunc: function () { console.log(this); } }; Instantiation : 클래스(Constructor Function)를 정의하고 해당 속성과 메서드를 가지는 객체들을 인스턴스화하는 것. new 키워드 사용. 클래스는 extends로 상속이 가능하며, 상속시에는 반드시 super(인자들) 메서드를 먼저 사용한 후에 오버라이딩 또는 커스터마이징해야 한다. c..
2020.05.21 -
[Array Functions] forEach의 상향버전 : map, filter, reduce, find, findIndex
배열은 자료형이 같은 원소들이 차례대로 번호표를 부여받아 저장되어 있기 때문에, 내부를 탐색하여 가공하는 과정에서는 반복문이 활용되기 마련이다. JavaScript에서는 이러한 배열을 쉽게 요리할 수 있도록 다양한 레시피가 준비되어 있다. 예제를 통해 확인해보자. 아래와 같이 numbers라는 배열이 하나 있다. const numbers = [37, 96, 41, 9, 15, 26, 1, 72]; 1. 100씩 곱하는 가장 원시적인 방법 => for Loop for ( let i = 0; i forEach const newNumbers = ..
2020.05.20