13 Oct 2019
|
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;
};
남이한걸 배꼇다… 잘모르겠다…
12 Oct 2019
|
TIL은 정리되지 않은 포스트 입니다.
추후에 TIL을 정리하여 제목이 달린 포스트를 합니다
인프런을 통하여
리액트 온라인 강의를 시작하였다.
로드맵
-
생활코딩 React
- 누구든지 하는 리액트
- React로 NodeBird SNS 만들기
이렇게 해볼생각이다
10 Oct 2019
|
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 검색해봐라
09 Oct 2019
|
TIL은 정리되지 않은 포스트 입니다.
추후에 TIL을 정리하여 제목이 달린 포스트를 합니다
recursion, 재귀
함수를 스스로 호출하는것
BaseCase
callstack이 넘치지 않도록
언젠가는 끝나도록
탈출조건을 만들어야한다
이것을 Base Case라고 한다.
function factorial(n) {
// Base Case
// n이 0이면 재귀를 더 이상 진행하지 않는다.
if (n === 0) {
return 1;
}
// REcursive Case
return n * factorial(n-1);
}
재귀의 단점
값이 리턴될때까지 호출마다 call stack 을 생성하므로 메모리를 많이 사용한다.
prototype
빵틀과 빵
빵이 instance
extending prototype
기본적으로 제공되는 객체에 사용자 정의 메소드를 직접 추가할 수있다.
단점 : 다른 코드아 충돌이 일어날수 있다. 협업할때는 안쓰는게 좋음
08 Oct 2019
|
출처
코드스테이츠
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)
반복실행중인 타이머를 종료