TIL_PLUS DFS 깊이 우선 탐색 DFS 깊이 우선 탐색이라고도 부르며, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 스택 자료 구조(or 재귀 함수)를 이용 1) 탐색 시작 노드를 스택에 삽입하고 방문 처리 2) 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문처리. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다. 3) 더 이상 2번의 과정을 수행할 수 ... 자료구조TIL_PLUSTIL_PLUS 이벤트 버블링 캡쳐링 버블링 어떤 요소에 대해 이벤트가 발생했을 때 해당 요소의 최상위 부모까지 이벤트가 전달되어지는 과정 캡쳐링 어떤 요소에 대해 이벤트가 발생했을 때 최상위 부모로부터 이벤트가 발생된 요소까지 이벤트가 전달되는 과정 버블링 발생 click 버튼 클릭 시 버블링 방지 추천 방법 < 다음 메소드는 별로 추천하는 방법은 아니다. event.stopPropagation() : 한 요소의 특정 이벤트를... starTIL_PLUSTIL_PLUS 호이스팅 TDZ 호이스팅(Hoisting)이란, var 선언문이나 function 선언문 등을 해당 스코프의 선두로 옮긴 것처럼 동작하는 특성 JS는 let, const를 포함하여 모든 선언(var, let, const, function, function*, class)을 호이스팅한다. 변수 3단계 생성 선언 단계(Declaration phase) 변수를 실행 컨텍스트의 변수 객체(Variable Objec... TIL_PLUSTIL_PLUS 재귀함수 advanced 꼬리 재귀 (tail recursion in js) 꼬리재귀란, 재귀 함수를 호출할 때 현재 함수 호출까지의 값을 계산하여 함수를 끝내고 새로운 함수를 호출함으로써 함수 호출로 인한 스택이 쌓이지 않도록(스택을 덮어씌워 재사용 가능) 구현하는 방식이다. 꼬리재귀 코드는 재귀와 달리 현재 함수 실행 결과를 계산한 뒤 매개변수로 필요한 연산을 전달하며, 현재 함수에서 다음 재귀 실행 결과를 이용... TIL_PLUSrepeatTIL_PLUS class prototype instance 관계 프로토타입 객체 ( !== prototype 속성) 생성자 함수의 prototype 속성이 참조하는 객체로, new라는 연산자와 생성자 함수를 통해 생성된 모든 객체의 원형이 되는 객체이다. 인스턴스, 프로토타입의 관계 prototype(속성): prototype 속성은 프로토타입 객체를 참조한다. __proto__ : 객체가 만들어지기 위해 사용된 원형인 프로토타입 객체를 참조하는 링크를 ... repeatTIL_PLUSTIL_PLUS
DFS 깊이 우선 탐색 DFS 깊이 우선 탐색이라고도 부르며, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 스택 자료 구조(or 재귀 함수)를 이용 1) 탐색 시작 노드를 스택에 삽입하고 방문 처리 2) 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문처리. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다. 3) 더 이상 2번의 과정을 수행할 수 ... 자료구조TIL_PLUSTIL_PLUS 이벤트 버블링 캡쳐링 버블링 어떤 요소에 대해 이벤트가 발생했을 때 해당 요소의 최상위 부모까지 이벤트가 전달되어지는 과정 캡쳐링 어떤 요소에 대해 이벤트가 발생했을 때 최상위 부모로부터 이벤트가 발생된 요소까지 이벤트가 전달되는 과정 버블링 발생 click 버튼 클릭 시 버블링 방지 추천 방법 < 다음 메소드는 별로 추천하는 방법은 아니다. event.stopPropagation() : 한 요소의 특정 이벤트를... starTIL_PLUSTIL_PLUS 호이스팅 TDZ 호이스팅(Hoisting)이란, var 선언문이나 function 선언문 등을 해당 스코프의 선두로 옮긴 것처럼 동작하는 특성 JS는 let, const를 포함하여 모든 선언(var, let, const, function, function*, class)을 호이스팅한다. 변수 3단계 생성 선언 단계(Declaration phase) 변수를 실행 컨텍스트의 변수 객체(Variable Objec... TIL_PLUSTIL_PLUS 재귀함수 advanced 꼬리 재귀 (tail recursion in js) 꼬리재귀란, 재귀 함수를 호출할 때 현재 함수 호출까지의 값을 계산하여 함수를 끝내고 새로운 함수를 호출함으로써 함수 호출로 인한 스택이 쌓이지 않도록(스택을 덮어씌워 재사용 가능) 구현하는 방식이다. 꼬리재귀 코드는 재귀와 달리 현재 함수 실행 결과를 계산한 뒤 매개변수로 필요한 연산을 전달하며, 현재 함수에서 다음 재귀 실행 결과를 이용... TIL_PLUSrepeatTIL_PLUS class prototype instance 관계 프로토타입 객체 ( !== prototype 속성) 생성자 함수의 prototype 속성이 참조하는 객체로, new라는 연산자와 생성자 함수를 통해 생성된 모든 객체의 원형이 되는 객체이다. 인스턴스, 프로토타입의 관계 prototype(속성): prototype 속성은 프로토타입 객체를 참조한다. __proto__ : 객체가 만들어지기 위해 사용된 원형인 프로토타입 객체를 참조하는 링크를 ... repeatTIL_PLUSTIL_PLUS