[TIL] 19-10-13

|

TIL은 정리되지 않은 포스트 입니다.

추후에 TIL을 정리하여 제목이 달린 포스트를 합니다

json 구조에서 탐색하는 방법

재귀를 쓰면 좋다.

만약 cat001 이라는 파일을 찾고 싶다고하자

폴더안에 뎁스가 얼마나 될지 모른다

cat001이 나올때까지 뒤져야한다

이럴때 재귀가 좋다.

탐색기나 파인더 같은 프로그램이

재귀를 사용하는 것이다.

document.body.children[0].classList.contains('asdf')
// .classList는 배열의 형태로 나온다
// .contains는 Boolean값으로 나온다

브라우저에 존재하는 getElementsByClassName이라는 함수를 직접 구현해보기

재귀공부하는 것임.

function getElementsByClassName(className) {

  let found = [];
  let rootElement = document.body;

  function recursion(element) {
    if(element.classList && element.classList.contains(className)) {
      found.push(element);
    }
    if(element.hasChildNodes()) {
      for(let i=0; i < element.childNodes.length; i++) {
        recursion(element.childNodes[i]);
      }
    }
  }
  recursion(rootElement);
  return found;

};

남이한걸 배꼇다… 잘모르겠다…

[TIL] 19-10-12

|

TIL은 정리되지 않은 포스트 입니다.

추후에 TIL을 정리하여 제목이 달린 포스트를 합니다

인프런을 통하여

리액트 온라인 강의를 시작하였다.

로드맵

  1. 생활코딩 React

  2. 누구든지 하는 리액트
  3. React로 NodeBird SNS 만들기

이렇게 해볼생각이다

[TIL] 19-10-10

|

TIL은 정리되지 않은 포스트 입니다.

추후에 TIL을 정리하여 제목이 달린 포스트를 합니다

분할정복

Math.log(7)

Math.log(10)

linear O(n)

선형적

for문 한번 돌리는거

quasdratic O(n제곱)

for문 두번 돌리는것

2중 for문은 좋지 않다

expeonential O(c의 n승)

거의 버그에 가깝다.

그러나 유용할때가 있다

패스워드 암호화 할때

big o cheet seet 검색해봐라

[TIL] 19-10-09

|

TIL은 정리되지 않은 포스트 입니다.

추후에 TIL을 정리하여 제목이 달린 포스트를 합니다

recursion, 재귀

함수를 스스로 호출하는것

BaseCase

callstack이 넘치지 않도록

언젠가는 끝나도록

탈출조건을 만들어야한다

이것을 Base Case라고 한다.

  • 대표적인 예 Factorial
function factorial(n) {
    // Base Case
    // n이 0이면 재귀를 더 이상 진행하지 않는다.
    if (n === 0) {
        return 1;
    }
    
    // REcursive Case
    return n * factorial(n-1);
}
  • 대표적인 예 fibonacci 수열

    function fib(n) {
        if(n === 0) {
            return 0;
        }
        if(n === 1) {
            return 1;
        }
        // fib(n) === fib(n-1) + fib(n-2);
        return fib(n-1) + fib(n-2);
    }
    // 0 1 1 2 3 5 8 13 ...
      
    
  • Jasson 구조 탐색

    재귀의 장점

    특정한 알고리즘을 작성할때 표현식이 직관적이다

    가독성이 좋다

재귀의 단점

값이 리턴될때까지 호출마다 call stack 을 생성하므로 메모리를 많이 사용한다.

prototype

빵틀과 빵

빵이 instance

extending prototype

기본적으로 제공되는 객체에 사용자 정의 메소드를 직접 추가할 수있다.

단점 : 다른 코드아 충돌이 일어날수 있다. 협업할때는 안쓰는게 좋음

[JavaScript] 타이머 API

|

출처

코드스테이츠

setTImeout(callback, millisecond)

일정 시간 후에 함수를 실행

  • arguments: 실행할 callback 함수, callback함수 실행 전 기다려야 할 시간(밀리초)
  • return value: 임의의 타이머ID
setTimeout(function() {
  console.log('1초 후 실행');
}, 1000);
// 123

setInterval(callback, millisecond)

일정 시간의 간격을 가지고 함수를 반복적으로 실행시키기 위한 시간 간격(밀리초)

  • arguments: 실행할 callback함수, 반복적으로 함수를 실행 시키기 위한 시간 간격(밀리초)
  • return value: 임의의 타이머 ID
setInterval(function() {
  console.log('1초마다 실행');
}, 1000);
// 345

clearInterval(timerld)

반복실행중인 타이머를 종료

  • arguments: 타이머ID