실행컨텍스트 (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 공간에 바로 데이터를 할당하지 않..
싱글톤 패턴이란 ? 클래스가 오로지 하나의 인스턴스만을 가지고 있는 패턴을 말한다. 싱글턴 패턴으로 구현된 대표적인 클래스는 Calendar 클래스가 있다. 어떻게 구현하는가 ? 외부에서 인스턴스를 생성할 수 없도록, 생성자의 접근 제어자를 private으로 설정해준다. 유일한 인스턴스는 클래스 내부에서 생성해놓는다. 클래스 내부에 생성된 인스턴스를 반환할 수 있는 클래스 메서드를 만든다 package Singltone; public class Company { private static Company instance = new Company(); private Company(){} public static Company getInstance() { if(instance == null) instance=..