javascript
-
[자바스크립트]데이터 자료형 에 대하여javascript 2021. 5. 22. 13:12
원시자료형 정의 : (고정된 저장공간을 차지하는 데이터) 예시 : boolean, number, string, null, undefined 특징 : immutable 하다 , 그러나 다른값을 할당할수는 있다. > 하나의 변수에 하나의 데이터 참조자료형 정의 : 원시자료형 말고 그외 자료형(힙이라는 별도의 데이터 저장소에 저장이되고 변수에는 저장된 위치를 가지고있는다.) 예시 : 배열, 함수 , 객체 특징 : mutable 하다 , 하나의 변수에 여러데이터를 담을수 있다.
-
[자바스크립트] try catch 문을 통한 에러 처리javascript 2021. 5. 3. 14:10
try { ... 코드를 실행 ... } catch(e) { ... 에러 핸들링 ... } finally { ... 항상 실행 ... } 본래 코드를 실행중 에러가 나면 스크립트는 중단 된다 그러나 try catch 문을 사용할 경우 에러에 의해 스크립트가 중단되는 것을 막을수 있고 경우에 따라 적합한 행동을 취할수 있다. 사용법은 위와 같이 간단하다. 일반적인 상황에서 try 안의 코드가 실행이 되고 try 블락 안에서 에러가 나지 않는 경우 finally 블락의 코드가 실행된 이후에 다음 코드가 진행이 된다. 만약에 try 문 안에서 에러가 발생했다면 try 문 안에서 코드는 중단되고 catch 문 안의 코드가 실행이된다. 그리고 catch 문의 코드 가 종료시 finally block 으로 넘어가 ..
-
[자바스크립트] 가비지 컬렉션javascript 2021. 4. 27. 14:10
더이상 사용되지 않는 메모리 를 지워 주는것 메모리 : 어떤값을 0과1 로바뀌어서 저장을 하는데 그때 의 그값과 그값을 저장한 위치 저수준언어에서는 코드를 통해서 쓰지 않는 변수나 함수 객체 등을 지워줌 그러나 고수준언어 (managed language 에서는 가비지 컬렉터가 그역할을 대신함) 그렇다면 가비지 컬렉터는 어떠한 기준으로 필요없는 메모리를 구분할수 있을까? 1. 레퍼런스 카운팅 :참조하고 있는곳이 있느지 카운트를 하고 없으면 제거 > 순환 참조시 문제가 있음 2.mark and sweep : 루트를 기준으로 참조값의 사용여부를 mark 하고 mark 되지 않는값을 지운다 > 순환참조시에도 루트에서 닿지 않는경우라면 제거됨 가비지 컬렉터에는 GC Root라는 것이 있다. GC Root들은 힙 ..
-
[자바스크립트] 이벤트 루프에 대해서javascript 2021. 4. 26. 18:27
브라우저 환경에서 제공되는 자바스크립트는 단일 스레드 방식으로 작동한다. 하지만 실제로 웹브라우저 환경을 이용하다보면 많은 task가 동시에 이루어지는거와 같이 보인다. 그러한 자바스크립트의 동시성을 지원해주는 것이 이벤트루프이다. 자바스크립트는 하나의 콜스택을 사용하여 작업을 처리한다. 비동기적인작업(ajax요청,이벤트,timer) 은 자바스크립트가 동작하는 환경인 브라우저(web api)에서 담당한다. 태스크 큐(이벤트큐) : 비동기 코드가 실행되기 이전에 보관되는 장소 이벤트 루프 : 이벤트 큐와 콜스택을 확인하고 콜스택이 비었을때 이벤트큐의 태스크가 이벤트 루프에 의해 콜스택으로 이동한다. ex.> 클릭 이벤트 가 발생시 태스크큐로 이동 > 콜스택비면 태스크큐에서 콜스택으로 타이머 시간종료시 ti..
-
[javascript] promise 에 대하여javascript 2021. 4. 23. 17:00
비동기식 처리 모델(Asynchronous processing model 또는 Non-Blocking processing model) 동기적 처리가 요청이후 응답전까지 다른 작업을 진행하지 기다린다는 점에서 비동기는 non-blocking processing model 이라는 표현이 좀더 와닿는다 위 말에서 유추할수 있듯이 비동기적 이라는 말은 요청이후 응답시까지 기다리는동안 다음 태스크를 수행하고 응답완료시 이벤트가 발생하여 응답에 의한 데이터를 활용한 태스크가 이루어진다. 이벤트 핸들러 Timer 함수(setTimeout, setInterval) Ajax 요청 위 3가지가 대표적으로 비동기식 처리 모델로 진행된다. 그러면 비동기는 알겟고 promise 는 뭔지 mdn 설명을 보자 설명 Promise는..
-
[자바스크립트] this 에 대해서 (call,apply,bind)javascript 2021. 4. 13. 12:44
자바스크립트의 this는 함수가 호출되는 상황에 따라 동적으로 결정이 된다. ( >> this) 여기서 결정이 된다라는 것은 this 라는 객체에 어떠한 객체들이 와서 바인딩이 되는가 하는 사항이다. 반면 렉시컬 스코프는 함수가 선언될때 결정된다 (>> 클로저) 호출되는 상황에는 어떠한 것들이 있을까? 1. 함수호출 2. 생성자 함수 호출 3. call / apply / bind 4. 메서드 호출 4. 메서드의 호출 - 객체의 프로퍼티값이 함수라면 우리는 그것을 메서드라고 부른다. - 메서드 내부의 this 는 메서드가 포함된 객체 를 가리킨다. 1. 일반적인 함수 호출 시에 함수내부의 this 는 전역 객체인 window (global)를 가리킨다. 왼쪽은 브라우저 콘솔에서 this를 찍었기 때문에 w..
-
[자바스크립트] 클로저에 대해서javascript 2021. 4. 9. 14:34
(정의) 클로저는 함수와 그 함수가 선언됐을 때의 렉시컬 환경(Lexical environment)과의 조합이다. 렉시컬 환경 : 스크립트 전체, 실행중인 함수, 코드블록 등은 자신만의 렉시컬 환경을 갖는다. 렉시컬 환경은 환경레코드, 외부렉시컬 환경으로 구성된다. (사전지식) 함수는 3가지정보가 포함된 객체를 갖는다(추상적개념임) 1. 변수에대한정보(활성객체 AO(activation object)) 2. 스코프체인 3. this(는 호출되는 환경에 의해정해짐) (설명) 스코프는 함수를 호출할 때가 아니라 함수를 어디에 선언하였는지에 따라 결정된다. 이를 렉시컬 스코핑(Lexical scoping)라 한다. 위 예제의 함수 innerFunc는 함수 outerFunc의 내부에서 선언되었기 때문에 함수 in..