'A tour of V8 : Garbage Collection'를 토대로 자바스크립트의 V8 엔진에서 힙과 가비지 컬렉터가 어떻게 지내는지 소소하게 정리했던 내용이다. 가비지 컬렉터는 메모리를 간단하게 관리하기 위해서 존재하고, 동적으로 할당한 메모리 영역 중 사용하지 않는 영역을 탐지하여 해제하는 기능을 한다.stack : 정적으로 할당한 메모리 영역heap : 동적으로 할당한 메모리 영역 Heap organizationNew-space: 대다수 객체가 할당되는 범위. 공간의 크기는 다른 공간에 비해 작은 편이고 가비지 컬렉터가 빠르게 수집한다Old-pointer-space: 포인터가 있을 수 있는 객체. 대부분의 객체는 new-space에서 옮겨진다고 한다Old-data-space: raw data(..
모던 자바스크립트 튜토리얼 내용 정리 남용은 금지! 존재하지 않아도 괜찮은 대상에만 사용 등장 배경 요소가 없을 때 발생한 에러를 처리하고자 하는 마음let user = {}; alert(user.address.street); // TypeError 발생 해결 과정 AND(&&) 연산을 사용한다면? let user = {}; alert(user && user.address && user.address.street); // undefined. 옵셔널 체이닝 등장 평가 대상이 undefined, null이면 평가를 멈추고 undefined를 반환let user = {}; alert( user?.address?.street ); // undefined, 에러가 발생하지 않습니다. 주의 사항 ?.의 '앞..
[JavaScript] 즉시 실행 함수 (IIFE) IIFE (Immediately Invoked Function Expression). 정의되자마자 실행되는 JavaScript Function을 말한다. 즉시 실행 함수 (function imFunc() { alert("Welcome"); }());익명함수로 실행 (function() { alert("Welcome"); }());변수 사용 가능 (괄호 안쪽, 바깥쪽 둘 다 가능) // 괄호 안쪽 let data = 'welcome'; (function(data) { alert(data); }(data)); // 괄호 바깥 let data = 'welcome'; (function(data) { alert(data); })(da..
[JavaScript] 함수를 선언식, 표현식, 화살표로 만들어보기 함수명은 CamelCase로! (시작은 소문자!) 선언식 표현 function 함수명(매개변수1, 매개변수2, ...) { 함수가 호출되었을 때 실행하고자 하는 실행문; return 함수 밖으로 내보내고 싶은 값; } 표현식 let method = function (매개변수1, 매개변수2, ...) { 함수가 호출되었을 때 실행하고자 하는 실행문; return 함수 밖으로 내보내고 싶은 값; } 화살표 Arrow 표현식으로 만드는 익명함수에서 사용let arrow = function() { console.log('arrow function'); }; arrow = () => {console.log('arrow fun..