
원시값(Primitive Value)과 참조값(Reference Value), 객체 복사(얕은 복사 Shallow Copy, 깊은 복사 Deep Copy) 자바스크립트에서의 데이터는 원시값(Primitive Value)과 참조값(Reference Value) 두가지 유형으로 나눌수 있다.이 두 유형은 메모리에 저장되는 방식과 복사되는 방식이 다르다. 원시값(Primitive Value)종류로는 string, number(Infinity, NaN 포함), boolean, undefined, null, symbol, bigint이 있다.값 자체를 저장하며, 변수에 할당할 때 새로운 메모리 공간에 저장한다. (때문에 불변하다. = 한번 생성된 값을 변경할 수 없다.)값을 복사하게되면 새로운 메모리 공간에 할..

자바스크립트 이터러블(iterable)과 이터레이터(iterator) 이터러블(Iterable)반복가능(=순회할 수 있는) 객체를 말한다. (배열(Array), 문자열(String), Set, Map, arguments, NodeList)Symbol.iterator 메서드를 구현하면 해당 객체가 이터러블(iterable)로 동작할 수 있다.Symbol.iterator가 이터러블 프로토콜을 따르도록 객체를 만드는 메서드이며, 객체에 Symbol.iterator를 구현하면 해당 객체는 이터러블이 된다. 특징이터러블 순회 - for...of 루프 사용 가능이터러블을 개별 요소로 분해 - spread 연산자 (...) 사용 가능이터러블을 배열로 변환 - Array.from() 사용가능const arr ..

자바스크립트 구조분해할당 (Destructuring)구조분해 할당은 배열이나 객체에서 특정 값을 쉽게 추출하여 변수에 할당할때 쓰는 문법이다. 배열 구조분해할당사용법은 아래와 같고, 배열에 할당된 순서대로 구조분해할당하여 추출해서 사용할 수 있다.const numbers = [1, 2, 3]; // 기존 방식 const a = numbers[0]; const b = numbers[1]; // 구조분해할당 const [x, y, z] = numbers; console.log(x, y, z); // 1 2 3 만약 특정 인덱스의 값을 넘기고 싶다면 해당하는 부분을 비워두고 콤마(,)로 넘어가면된다.const numbers = [1, 2, 3, 4, 5]; // 두 번째 값을 비워두면 건너뛰기가 가능하다c..

자바스크립트 실행 컨텍스트(Execution Context)실행 컨텍스트는 코드 실행과 흐름을 관리하는 핵심 원리다.이 개념을 정확히 이해하면 스코프나 호이스팅, this, 클로저와 같은 개념을 잘 이해할 수 있다. 실행 컨텍스트는 자바스크립트 코드가 이벤트 루프로 부터 콜스택으로 이동하게 되고난 후 실행될때 생성되는 환경을 말한다. 실행 컨텍스트는 필요한 정보를 저장하고 관리하게된다. 핵심 역할코드 실행에 필요한 정보 관리변수, 함수 선언을 메모리에 저장하고 참조this 바인딩을 결정스코프와 클로저를 관리 핵심 역할 중 변수, 함수 선언을 메모리에 저장하고 참조하기 때문에 호이스팅 개념이 가능한 것이고..이때 상위 스코프의 변수, 함수선언을 참조하기 때문에 가비지컬렉터의 대상이 되지 않기 때문에 외부 ..