1. prototype //생성자를 정의한다.var Human = function(name) {this.name =name;} //생성자의 prototype에 sleep이라는 함수를 할당한다.Human.prototype.sleep = function( ) { }; var steve = new Human('steve'); function에는 기본적으로 prototype에 constructor가 생성된다.__proto__는 생성된 인스턴스가 참조하고 있는 prototype을 뜻한다.Human.prototype 으로 Human의 prototype에 접근이 가능하다.Human.Prototype.constructor 는 Human이다.-> new를 사용해서 만들 경우 생성자가 어떤 함수인지를 뜻한다. var Hu..
complexity(복잡도)는 가장 높은 경우로 결정한다 CONSTANT / O(1) : n이 증가 되어도 시간은 항상 똑같다.ex) 인덱스로 접근해서 처리할 경우 LOGARITHMIC / O(log n) : 결과를 처리하면서 시간이 줄어든다ex) memoise, binerySerch LINEAR / O(n) : n이 증가하면 시간도 비례해서 증가2n 으로 증가 QUADRATIC / O(n^2) :n이 증가하면 시간이 n^2으로 증가ex) 이중 for문 EXPONENTIAL O(c^n):n이 증가하면 시간이 기하급수적으로 증가함 참고 https://medium.com/basecs/looking-for-the-logic-behind-logarithms-9e79d7666ddabig-o cheet sheet
쿠키, 세션과 토큰의 차이점에 대한 정리 2022.04.19 - [Study/Web] - 쿠키, 세션(cookie, session)과 토큰 (token, JWT)의 차이점 쿠키와 세션을 사용하는 이유 HTTP 프로토콜은 2가지의 특징을 가지고 있다 1. 비연결지향(Connectionless) 클라이언트가 request를 서버에 보내면, 서버는 요청에 맞는 response를 보내고 접속을 끊는다. (HTTP1.1 버전에서는 커넷견을 열어두고(연결을 유지하고) request에 재활용하는 기능이 추가되었다) 2. 상태정보유지안함(Stateless) 연결을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보는 유지하지 않는다 그렇기 때문에 HTTP는 사용자의 요청마다 연결과 해제를 하고 연결 상태를 유지하지..
var array = [1, 2, 3]var a = array[0];var b = array[2]; var [c, , , d] = [1, 2, 1, 3]console.log(c) // 1console.log(d) // 3 es5에서는 배열의 인덱스를 지정해서 대입을 해야 값을 넣을 수 있지만비구조화 할당을 이용하면 아래와 같이 사용해서 대입이 가능하다 var obj = { h : 'eich',i : {j : 'jay'}}; var { h, i : { j } , k } = objconsole.log( h , j , k) // 'eich', 'jay', undefined obj의 키값을 찾아서 키값 변수에 밸류 값을 할당 해준다당연히 키값의 이름이 다르거나 없으면 undefined가 할당 된다. var de..
1. let , const , var- let과 const는 es6에 등장하는 변수 선언 방식이다- 자바스크립트의 var는 함수 레벨 스코프 방식이어서 유연하게 사용할 수 있지만 스코프가 넓기 때문에 어디에서 어떻게 사용이 됐는지 파악이 힘들다- 그에 따라서 es6에서는 let과 const라는 블록 레벨 스코프를 따르는 변수를 제공한다 - let : var는 중복으로 선언이 가능하지만, let과 const는 중복으로 선언이 불가능 하다: let도 호이스팅이 되기는 하지만 선언만 되고 초기화(메모리에 변수할당)가 되지 않아서 블록에 let을 할당하기 전에 let변수를 사용하려고 하면 레퍼런스 에러가 뜬다.let이 호이스팅으로 선언이 되어있기 때문에 let이 실행되는 곳까지 가서 초기화가 되고 할당까지 받아..
VirtualDOM에 대해서 알아보기 전에 브라우저가 어떻게 작동하는지 먼저 알아 봅시다 쉽게 생각하면 html과 css를 합치고 화면에 나올 수 있게 배치한 후 출력한다 DOM Tree 생성 브라우저가 HTML을 전달 받으면, 브라우저의 렌더 엔진이 이를 파싱하고 DOM노드로 이뤄진 트리를 만듭니다각 노드는 각 HTML 엘리먼트들과 연관되어있습니다 Render Tree 생성그 후 외부 css파일과 각 엘리먼트의 inline 스타일을 파싱합니다.스타일 정보를 사용하여 DOM트리에 따라 새로운 트리, 렌더트리를 만들어요 Render Tree 생성 -그 뒤에선 무슨일이 일어나고 있는가Webkit에서는 노드의 스타일을 처리하는 과정을 'attachment'라고 부릅니다.DOM트리의 모든 노드들은 'attach..
자바스크립트는 싱글 쓰레드를 기반으로 한다 따라서 원래라면 하나의 일을 처리한 후 다음 일을 처리할 수 있다 하지만 브라우저가 제공하는 WebAPI를 통해 자바스크립크에 효과적으로 스레드를 지원한다 console.log( ' hi ' ); setTimeout ( function cd( ) {console.log( ' there ' );} , 5000 ); console.log( ' JS ' ) //consolehiJSthere console.log( ' hi ' ); 와 console.log( ' JS ' ) 는 stack에 쌓이고 바로 실행이 되지만 setTimeout 은 WebAPI에 넘겨진다그 후 5초가 흐른 후 task queue로 넘어간다이 때 stack이 비어 있으면 event loop는 qu..