일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 어은동맛집
- 리사이클러뷰
- 몰입캠프후기
- 안드로이드스튜디오
- nodeJS
- 후기
- BFS
- glfw
- 앱개발
- 분리집합
- html
- 위상정렬
- 카이스트맛집
- 백준
- 자바
- computergraphics
- 우선순위큐
- 프래그먼트
- 타입스크립트
- 궁동
- DP
- 대전맛집
- 카이스트
- 컴퓨터그래픽스
- MySQL
- 몰입캠프
- 알고리즘
- node.js
- 프로그래머스
- 자바스크립트
- Today
- Total
목록자바스크립트 (3)
소근소근
기본적으로 자바스크립트는 단일 스레드이며 동기적(synchronous)이다. 동기적이라는 것은 어떠한 작업이 실행되고 있다면 다른 작업은 멈춘 상태에서 기다리는 것을 말한다. 비동기 동작 비동기적으로 동작하는 것도 필요하다. 비동기적이라는 것은 어떠한 요청을 보내고 이 요청이 처리되는 것을 끝날때까지 기다리는 것이 아니라 바로 다음 작업이 실행되는 것을 말한다. console.log('Hello'); setTimeout(function hi(){ console.log('async'); },3000); console.log('Bye'); 먼저 , console.log('Hello')가 실행이 되고, 콜 스택에 쌓였다가 콘솔에 Hello가 출력된다. 출력 후에는 스택에서 사라지고 , 스택에는 setTimeo..
자바스크립트는 'synchronous' 하고, 'non-blocking' 하다 싱글 스레드 기반이고, 콜백 큐를 사용한다. 자바스크립트의 대표적인 엔진으로는 크롬 브라우저의 V8 엔진이 있다. 엔진의 구성요소로 두가지는 메모리 힙 (Memory Heap) : 메모리 할당이 이루어진다. 콜 스택 (Call Stack) : 코드가 실행됨에 따라 호출 스택이 쌓이는 곳 자바스크립트 엔진 외에도 관여하는 다른 요소로는 DOM 이나 timeout같은 WEB API가 있다. 자바스크립트가 기본적으로 synchronous한데, asynchronous하게 동작하도록 Timeout을 이용할 수 있다. (ex setTimeout) 싱글 스레드 기반은 멀티 스레드 환경에서 고려해야 하는 복잡한 문제( ex : deadloc..
자바스크립트에서 = 로 객체를 복사하려고 하면 복사가 되지 않고 '참조' 를 하게 된다. 즉 값을 복사하는 것이 아니라 원래 객체의 주소값을 가리키게 된다. 객체의 참조 복사(shallow cloning) let obj = { a : 'a', b : 'b', c : 'c' }; let notclone = obj; obj.c = 'changed'; console.log(obj); console.log(notclone); 콘솔 출력 > {a: 'a', b: 'b', c: 'changed'} > {a: 'a', b: 'b', c: 'changed'} notclone = obj 으로 notclone은 obj의 주소값을 가리키게 된다. 그렇기 때문에 obj의 내용을 바꾸면 notclone에도 반영이 된다. 객체의..