실행컨텍스트 (execution context) 실행할 코드에 제공할 환경 정보들을 모아놓은 객체 동일한 환경(하나의 실행컨텍스트) 의 코드들을 실행 시, 필요한 환경정보들을 모아 컨텍스트를 구성하고 이를 콜 스택에 쌓아놨다가, 가장 위에 쌓여있는 컨텍스트와 관련있는 코드들을 실행함 동일한 환경이 구성되는 조건: eval 함수, 함수, 전역 공간 자바스크립트를 실행하는 동시에 전역 컨텍스트가 콜 스택에 담김 최상단은 브라우저에서 자동으로 실행되므로, 자바스크립트 파일이 열림과 동시에 전역 컨텍스트가 활성화 된다. 어떤 실행 컨텍스트가 활성화 될 때 자바스크립트 엔진은, 해당 컨텍스트에 관련된 코드들을 실행하는데 필요한 환경 정보들을 수집해서 실행 컨텍스트 객체에 저장한다. 실행 컨텍스트 객체 Variab..
깊은복사(deep Copy) 와 얕은복사(Shallow Copy) var num1 =10; var num2 = num1; var num2 = 20; console.log(num1) // 10 console.log(num2) // 20 위와 같이 immutable 한 변수(기본형 데이터) 를 copy하면 나타는게 깊은 복사이다. 깊은 복사는 내부의 값(기본형 데이터)까지 복사하는 것이다. 물론 여기서 num2=num1을 했을 때, num2와 num1은 같은 주소 (정수 10이 담겨있는 메모리)를 가리키게 되지만 num2가 다른 주소를 가리킨다고 해서 num1도 덩달아 다른 주소를 가리키게 되지 않는다. 왜냐하면 당연하다! 기본형 데이터는 불변하기 때문이다. var obj1 ={ a:1, b:2 } var ..
자바스크립트 데이터 타입 기본형 : 숫자, 불리언, null, undefiend, Symbol 참조형 : 객체, 함수, 날짜 , 배열 자바스크립트가 변수를 선언/할당 하는 과정 - 기본형 변수 : 변할 수 있는 데이터 식별자: 해당 변수를 가리키는 이름 var a = 1; 위와 같은 코드를 썼을 때, 자바스크립트 엔진은 다음과 같이 작동한다. 선언된 변수를 위한 비어있는 메모리 공간을 확보한다. 해당 메모리 공간의 식별자를 'a' 로 지정한다. a에 할당할 데이터 1이 메모리 영역에 존재하는지 살펴 본다. 있다면 해당 주소를 'a' 공간에 대입하고, 없다면 새로운 메모리 공간에 데이터 1을 저장한 후 해당 공간의 주소를 'a' 공간에 대입한다. 왜 자바스크립트는 변수 a 공간에 바로 데이터를 할당하지 않..