본문 바로가기

JaveScript41

Garbage Collector Garbage Collector ▶ 메모리를 청소하는 시스템이며 따로 설정하지 않아도 자바 스크립트 엔진에서 자동으로 제공해준다. ▶ GC는 메모리를 감시하며 참조되지 않는 변수나 객체가 있다면 메모리에서 깔끔하게 지워버린다. ▶ 메모리를 청소할 때 CPU가 사용되기 때문에 GC에 의존하여 쓸데없는 변수나 객체를 남발하지 않는 게 좋다. ▶ 글로벌 변수는 앱이 종료될때까지 메모리에 유지되기 때문에 많이 사용하지 않는 것이 좋다. const global = 3; // 글로벌 변수이기 때문에 앱이 종료될때까지 메모리에 유지됨 { const local = 8; // 블럭 내부에서만 존재하기 때문에 블럭이 종료되면 메모리에서 삭제됨(GC에 의해서 삭제됨) } 2022. 7. 1.
Scope Scope ▶ 변수를 참조할 수 있는 유효한 범위를 말한다. 즉 식별자가 유효한 범위를 말하는 것이다. ▶ 이름 충돌을 방지할 수 있으며 메모리를 절약할 수 있다. ▶ 블럭 바깥의 변수를 전역(글로벌) 변수, 전역(글로벌) 스코프 라고 부른다. ▶ 블럭 내부의 변수를 지역(로컬) 변수, 지역(로컬) 스코프라고 부른다. ▶ 코드 블럭(대괄호 {})안의 변수는 블록 안에서만 유효하다. 즉 블록 외부에서는 블록 내부를 참조할 수 없다. // { } { const a = 1; } console.log(a); // a is not defined // function() { } function add() { const hi = 'hola'; } console.log(hi); // hi is not defined ▶.. 2022. 7. 1.
Json Json ▶ 자바스크립트에서 사용하는 객체를 서버와 주고받기 편한 문자열 형태로 변환한 형태의 포맷이다. ▶ stringify(object) => 객체(object)를 받아서 문자열(Json)로 변환한 후 서버로 보낸다. 하지만 함수는 json에 포함시킬 수 없다. ▶ 객체 >> 문자열 데이터로 바꾼것을 '직렬화' 라고 한다. const man = { name: 'hong', age: 30, say: () => console.log('Hola') }; const json = JSON.stringify(man); console.log(json); // {"name":"hong","age":30} ▶ parse(json) => 문자열(Json)을 받아서 객체(object)로 변환해준다. ▶ 문자열 데이터 >.. 2022. 6. 30.
async & await async ▶ promise를 좀 더 편하고 깔끔하게 사용하기 위해 쓰인다. ▶ function 앞에 async를 붙여서 사용하며 해당 함수는 promise를 반환한다. async function asy() { return 10; }; asy().then((result) => console.log(result) ); // 10 await ▶ async함수 내부에서만 동작한다. 즉 일반 함수에서는 사용할 수 없다. ▶ await를 만나면 promise가 처리될 때까지 기다린 후 결과를 반환하기 때문에 CPU 리소스가 낭비되지 않는다. ▶ then보다 가독성도 좋고 쓰기도 편하다. async function test() { let promise = new Promise((resolve) => { resolv.. 2022. 6. 30.