JavaScript (22) 썸네일형 리스트형 리트코드: 2. Add Two Numbers javascript 2년만에 PS를 다시 시작한다. 시작은 무난한 리코드 미디엄 문제.. ListNode 라는 릿코드에서 제공하는 자료구조를 이용해서 문제를 해결한다. ListNode는 단방향 연결리스트이다. 각각의 l1, l2의 reverse 값을 더한후 다시 reverse 하기 때문에 처음 각각의 노드들을 순회하면서 값을 더해주는 값 자체가 정답이된다. 주의할점은 각각의 노드에서 더이상 순회할게 없으면 0 이 될것이고, 각각의 노드에서 10이상의 값은 다음 node로 넘겨주면 된다. while 탈출 조건으로는 다음으로 넘길값이 없으면서 순회할 노드가 없는 경우 탈출하게 된다. /** * Definition for singly-linked list. * function ListNode(val, next) { * this... 리팩토링2 : javascript 백엔드 진영에서는 좋은 책들이 많이 출간되어 있다. 유명한 클린코드, 디자인패턴 등.. JAVA공부를 하면서 많이 보았지만 최근에 JavaScript 공부를 하면서 리팩토링 관련 책을 찾고 있었다. 시중에 나와있는 리팩토링 책들은 Java기반이고 개발 방법론이기 때문에 상관은 없다지만 그래도 현재 학습하고 있는 JavaScript 기반의 기술서적을 원했고 주변 사람들의 추천으로 작년에 출간된 JavaScript 기반 리팩토링2라는 책을 알게되었다. 최근에 Js라는 언어를 공부하면서 클로저, 프로미스, 프로토타입, this 바인드, 이벤트 루프등 JS만의 다른언어에 없는 특이한 성질들을 학습하였고 이제는 고급 기법을 공부하기 위해서 이책으로 공부해 보려고한다. JavaScript 모든 this의 바인딩 상황 프론트 엔드를 공부를 시작하면서 this에 관련된 상황에 대해서 어떻게든 사용하고 있었지만 그것은 감으로 사용하고 있었고 정확하게 이렇게 될거야라는 확신은 없는채 사용해 왔다. 이렇게 사용하면 되겠지.. 하지만 특수한 경우에는 생각되로 바인딩 되지 않는 경우가 있는데 그러한 경우를 모아서 정리해볼려고 한다. JavaScript에서는 this는 상황에 따라 다른 표현을 가지고 있다. 상황에 따른 this가 어디로 할당 되는지 다루어 볼려고 한다. 기본 적으로 this는 함수내에서 암묵적으로 전달되는 변수이다. 1. 객체의 메소드를 호출할 때 var Obj = { name: 'this', func: function() { console.log(this); } }; Obj.func(); // { name: '.. 프로그래머스 : 가사검색 JavsScript 자료구조 : 트라이 1년전 정리했던 자료구조이다. Java로 짜여져있는 내코드를 참조했다. https://redbinalgorithm.tistory.com/167?category=880023 트라이(Trie) : JAVA / 백준 5052 트라이 알고리즘 일반 적인 정수들은 O(1) 시간내에 비교가 가능합니다 . 1==1 ,123>4 처럼 단순연산으로 접근 할 수 있습니다. 하지만 String 같은경우에는 "ABC" == "ABCD" 를 고려하기 위해서는 최대 문 redbinalgorithm.tistory.com 트라이 알고리즘은 특정 자료안에 key가 존재하는가 여부를 O(NM) 안에 알 수 있는 가장 빠른 자료구조이다(N은 쿼리수) 이러한 특성때문에 해당 프로그래머스 문제에서도 쿼리수가 많은 경우에도.. TypeScript: typeAlias vs interface 타입스크립트에서는 타입을 명시하기위해서 두가지 방법을 사용한다. 문법적으로 비슷하지만 약간다르고 지원하는 내용도 차이가 있다. 다음과 같은 News와 NewsFeed 타입으로 명시하겠다. typeAlias type News = { id: number; time_ago: string; title: string; url: string; user: string; content: string; } type NewsFeed = & News { commnets_count: number; points: number; read?: boolean; } interface interface News { id: number; time_ago: string; title: string; url: string; user: stri.. 코딩테스트 자주사용하는 코드 (JavaScript) https://redbinalgorithm.tistory.com/579 코딩테스트 자주사용하는 코드 (JAVA) 여러 코딩테스트를 하다보면 VS Code, 이클립스같은 IDE를 사용하지 못하는 코딩테스트가 있다. 또한 요즘 코로나로 퍼지면서 실시간 녹화와 원격으로 감시하기 때문에 검색을 하거나, IDE의 자동 redbinalgorithm.tistory.com 이전에 JAVA로 자주 사용하는 코딩테스트 형식을 공유했다. 이제는 JS로 어떻게 사용할지에 대한 문의를 쓸려고 한다. Sort 함수 var arr = [1,3,4,5,6]; arr.sort(); class 사용법 function으로 대체가능 class Car { constructor(type, year) { this.type = type; this.. 클로저 클로저 - 내부함수가 외부함수의 맥락에 접근할 수 있는 것을 가르킨다. 클로저는 자바스크립트를 이용한 고난이도의 테크닉을 구사하는데 필수적인 개념으로 활용된다. - 프라이빗한 변수를 만들때 사용한다 getter, setter같은것 부연설명을 좀더하자면 클로저는 JS만의 고유한 개념이 아니라 함수를 일급 객체로 취급하는 함수형 프로그래밍 언어 : 얼랭, 스칼라, 하스켈에서 사용되는 중요한 특성중의 하나이다. 함수형 프로그래밍이란 프로그래밍 방법론중 하나이며 일정한 변수에 대해서 항상같은 결과가 나온다는 개념이다. ( 일급 객체란 함수자체를 인자로 받거나, 반환할 수있고 변수에 할당할 수 있는 객체를 의미한다. 이것이 가능하기 때문에 고차함수, 콜백함수도 가능하다.) 클로저는 자신이 생성될 때의 환경(Lex.. JavaScript push를 이용해서 렌더링하기. API 1 API 2 API 3 API 4 특정 API 호출시 API 1 ~ API 4 까지를 반환하고 이값을 ul > li > a 로 렌더링 할려고한다. React를 사용할 수도 있지만 JavaScript만으로 구현을 한다고하면 대부분은 아래와 같은 과정을 지나갑니다. const ul = documnet.createElement('ul'); // API 호출함수 ["API 1", "API 2", "API 3", "API 4"] 반환 const API = getAPI(URL); for(let i =0; i< 4; i++) { const li = document.createElement('li'); const a = document.createElemen('a'); a.href = `#${API[i]}`;.. 이전 1 2 3 다음