일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Basic
- React
- 기초
- front-end mocking
- MSW
- 최적화
- 컴포넌트
- react-native
- 캐쉬
- 쓰레드
- CSS-in-JS
- sprinkles
- Babel
- Critical Rendering Path
- 목킹
- 리액트네이티브
- mock service worker
- amplify
- next hydration
- vanilla-extract
- 비동기
- async
- 기본
- 개발자
- 리액트쿼리
- 동기
- 리액트
- mockoon
- 자바스크립트
- SWC
- Cache
- next.js
- 아키텍처
- thread
- react server component
- react-query
- link
- styled-component
- JavaScript
- Concurrent Mode
- Today
- Total
목록JavaScript (5)
Don’t worry about failures

자바스크립트는 프로토타입 기반의 언어이다. 자바와 다르게 상속이 아닌 프로토타입으로 객체와의 연결을 통해 상속과 같은 역할을 하여 구현을 한다. 이로써 프로토타입은 객체를 확장하고 객체 지향적인 프로그래밍을 할 수 있게 되는 것이다. Person이라는 함수를 간단하게 테스트해보자. 이를 기반으로 살펴보면, person변수가 Person함수를 할당 받는 순간 person.prototype 또한 새로운 객체가 생성이 된다. 이 prototype의 객체는 생성자와 그의 prototype인 Object를 가리키고 있다. 이 생성자는 Person 함수를 가리키고 있다. 이와 같이 prototype의 객체를 새로 생성하여 서로 순환 참조의 관계를 가지고 있다. 여기에 추가적으로 person객체를 더 생성해보자. P..

C와 같은 저수준의 언어가 아니면 언어들은 보통 가비지 컬렉터가 존재하며, 불필요한 메모리를 정리한다. 자바스크립트의 v8엔진 기준으로 가비지 컬렉터에 대해 알아보자. 메모리 할당 구조. 변수는 원시 변수와 참조 변수로 나누어져있다. 이 두 타입의 변수는 저장되는 방식이 약간 다르다. 원시변수는 단순하게 콜스택에 바로 저장이 되지만, 참조 변수의 경우 메모리 힙에 실제 변수가 저장이 되고, 이에 대한 주소값을 콜스텍에 저장을 한다. 가비지컬렉터는 참조 변수 관리의 역할을 한다. 즉, 참조 변수는 메모리에 저장되고 주소가 콜스텍에 저장이 된다고 했다. 여기서 콜스텍에 있는 데이터가 사라진다고 하면 메모리 힙에 있는 값을 따로 삭제하지 않으면 아무도 사용하지 않는 메모리가 되어버린다. 이렇게 됐을 때 가비지..

k번째 수 function solution(array, commands) { const answer = []; for(const command of commands) { const [from, to, getIndex] = command; const sliceArray = array.slice(from - 1, to); sliceArray.sort((a,b) => a - b); answer.push(sliceArray[getIndex - 1]); } return answer; } 프로그래머스에서 코딩테스트 문제를 풀다 한 case에서 fail이 떴다. 아무리봐도 이상한 점이 없었으나,, 계속 찾아본 결과 sort에서 문제를 발견했다. 처음 sort하는 과정에서 단순 sort()를 사용했다. 하지만, sor..

이해 컴파일러와 인터프리터는 사람이 이해할 수 있는 고급언어로 작성된 코드를 기계가 이해할 수 있는 기계어로 번역한 후 프로그램을 실행할 수 있게 해주는 것이다. 컴파일러 한번에 모든 코드를 고급언어에서 기계언어로 번역을한다. 이에 따라 초기에 오래걸리지만, 그 이후 runtime 때 실행 시간이 빠른 편이다. 미리 번역을 해놓았기 때문에 바로바로 컴퓨터가 이해할 수 있어 빠른 것이다. 인터프리터 한줄씩 번역을 진행을 하기 때문에 번역시간이 빠르나 실행하는 속도는 컴파일러에 비해 느리다. 컴파일러 문제점 컴파일러는 플랫폼(하드웨어)에 종속적이다. 전세계에 수 많은 종류의 하드웨어( cpu )가 존재한다. 이에 따라 a사 의 cpu에서 돌아가는 프로그램을 만들고, 타 사의 cpu에 돌려보면, 작동이 잘안된..

javascript의 가장 기초인 this, bind, call, apply에 대해,, 1. this this는 ' 나를 호출한 애 ' 혹은 ' 처음 실행시킨 곳' 라고 보면 좋을거같다. global에서 console.log(this)를 확인해보면 window{} 결과가 도출될 것이다. 즉 window에서 console.log가 실행되고 호출한 애는 Window가 된것이다. 다음의 경우는 this가 무엇을 가르칠까 const obj = { a: function() { console.log(this) } }; obj.a(); 실행된 함수는 a라는 함수이다. 이 함수를 호출한 애는 누구? obj이다. 따라서 this는 obj가 될 것이다. 하지만, const a2 = obj.a; a2(); 이와 같이 실행되..