• 스택 (Stack)

    Stack function Stack() { var items = []; this.push = function(element) { items.push(element); }; this.pop = function() { return items.pop(); }; this.peek = function() { return items[items.length - 1]; }; this.isEmpty = function() { return items.length === 0; }; this.size = function() { return items.length; }; this.clear = function() {...

  • 큐 (Queue)

    Queue function Queue() { var items = []; this.enqueue = function(element) { items.push(element); }; this.dequeue = function() { return items.shift(); }; this.front = function() { return items[0]; }; this.isEmpty = function() { return items.length === 0; }; this.size = function() { return items.length; }; this.clear = function() { items =...

  • 우선순위 큐 (Priority Queue)

    Priority Queue function PriorityQueue() { var items = []; function QueueElement(element, priority) { this.element = element; this.priority = priority; } this.enqueue = function(element, priority) { var queueElement = new QueueElement(element, priority); if (this.isEmpty()) { items.push(queueElement); } else { var added = false; for (var i = 0; i < items.length;...

  • 객체 (Objects)

    객체 객체는 선언적(literal) 형식과 생성자(constructor) 형식, 두 가지로 정의 // Object initialiser or literal var myObj = { key: value } // Called as a constructor var myObj = new Object(); myObj.key = value; literal vs. constructor literal 형식은 한 번의 선언으로 다수의 키/값 쌍을 프로퍼티로 추가할 수 있지만, constructor...

  • 고차함수 (Higher Order Function)

    고차함수 (Higher Order Function) h(x) = f(g(x)) 하나 이상의 함수를 인수로 취한다. 함수를 결과로 반환한다. var twice = function(f, v) { return f(f(v)); }; var f = function(v) { return v + 3; }; twice(f, 7); // 13 커링 (Currying) 수학자 Haskell Curry의 이름을 딴 이 기법은 함수가 함수를 만드는...

  • 함수 (Functions)

    JavaScript에서, 함수는 다른 객체처럼 속성 및 메서드를 가질 수 있기에 일급(first-class) 객체입니다. 다른 객체와 함수를 구별하는 것은 함수는 호출될 수 있다는 것입니다. 간단히 말해, 함수는 Function 객체입니다. 일급 시민(first-class citizens) 변수나 데이터에 할당할 수 있어야 한다. 객체의 인자로 넘길 수 있어야 한다. 객체의 리턴값으로 리턴할 수 있어야 한다. /* 함수...

  • 정렬 (Sorting)

    Sorting var sorting = (function() { var array = []; var _init = function(size) { _initArray(size); }; var _initArray = function(size) { array = []; for (var i=size; i > 0; i--) { array.push(i); } }; var _logger = function() { console.log(array.join()); }; var _swap = function(index1, index2) { var...

  • 브라우저 렌더링

    렌더링 과정 HTML -> DOM 바이트->문자->토큰->노드->객체 모델 HTML 마크업을 문서 객체 모델(DOM:Document Object Model)로 변환 DOM과 CSSOM은 서로 별개로 존재하는 데이터 구조 CSS -> CSSOM 바이트->문자->토큰->노드->객체 모델 CSS 마크업을 CSS 객체 모델(CSSOM:CSS Object Model)로 변환 DOM과 CSSOM은 서로 별개로 존재하는 데이터 구조 Render Tree DOM과 CSSOM 트리를 결합해서 렌더 트리를...