본문 바로가기

자바스크립트4

JavaScript로 설명하는 Hash Table Hash TableHash라는 개념은 컴퓨터 공학을 공부하다보면 정말 자주 나오는 개념이다.블록체인이나 암호학을 공부한다면 정말 한번도 빼놓지 않고 들을 수 있고, 데이터베이스를 공부하다보면 해시테이블에 관한 내용을 심심치 않게 접한다. 개요먼저 간단하게 Hash Table(Hash Map)이 무엇인지 설명하겠다.위 그림은 전화번호부에 있는 사람들을 Hash Table에 저장을 할 때 어떤 식으로 저장이 되는지 묘사한 그림이다.Key인 사람이름을 Hash Function을 통해 인덱싱을 한다. 해당 Index에 값인 Value는 bucket (slot)에 저장이 된다.컴퓨터 공학에서는 associative array라고 분류를 한다. (map, symbol table, dictionary가 해당) 즉, .. 2019. 1. 7.
[JavaScript] 이벤트와 동시성모델 JavaScript는 싱글 스레드 기반 언어라는 큰 특징을 가지고있다. 싱글스레드라는 말은 곧, 한가지의 작업만 처리할 수 있다는 말인데 실제 웹 브라우저를 사용하다 보면 동작되는 JavaScript들의 수많은 작업들이 동시에 처리되고 있는 것 처럼 보인다. 싱글 스레드라는데 어떻게 동시에 여러가지 처리하는 것 처럼 느껴질까? 이유를 살펴보기 전에 JavaScript에서 Server Side 언어로 인기있는 Node.js의 Wikipedia 설명을 보았다. JavaScript기반에 Non-blocking I/O와 단일 스레드 이벤트 루프를 통해 높은 처리 성능을 가지고 있다. 라고 설명이 된다. 그렇다면 단일 스레드 이벤트 루프가 무엇일까? 이때, 자바스크립트에서는 이벤트 루프라는 개념을 사용한다. 먼저.. 2018. 12. 2.
[JavaScript]ES6 Object 객체 /* ES6 */ let tree = { height: 10, color: 'green', grow() { this.height += 2; } }; tree.grow(); console.log(tree.height); /* result = 12 */ JavaScript 변수는 속성이라고 불리는 Object data types를 가질 수 있습니다. 또한, Object는 메소드라고 불리는 속성을 가질 수 있습니다. 기존 object안에 function()을 사용하려면 (:) 콜론을 사용했지만 ES6부터는 사용하지 않아도 됩니다. 사각 Bracket을 이용하면 [], 속성 이름을 지정할 수 있습니다. let prop = 'name'; let id = '123'; let mobile = '001'; let us.. 2018. 10. 28.
[JavaScript]반복문 for in vs for of forEach 반복문 forEach 반복문은 Array 객체에서 사용이 가능한 메서드입니다. 배열의 요소들을 반복하여 작업을 수행할 수 있습니다. forEach 구문의 parameter로 callback 함수를 등록할 수 있고, 배열의 각 요소들이 반복될 때 이 callback 함수가 호출됩니다. const arr = ['element1', 'element2', 'element3']; arr.forEach(el => console.log(el)); /* result = element1, element2, element3 */ for ...in 반복문 for in 반복문은 객체의 속성들을 반복해서 작업을 수행할 수 있습니다. 모든 객체에서 사용이 가능합니다. for in 구문은 특히 객체의 key 값에 접.. 2018. 10. 28.