본문 바로가기
var, let, const 차이 1. 변수 값의 변환 재선언 재할당 var o o let x o const x x 2. 변수의 스코프 - let과 const로 선언된 변수는 블록 레벨 스코프를 가지므로, {} 내부에 변수를 선언하면 해당 블록 내부에만 생명주기를 유지한다. - var는 함수 레벨 스코프를 가지므로 블록 내부에 선언되어도 외부에서 접근할 수 있다. 3. 호이스팅 - 변수생성 3단계 1. 선언단계: 변수를 실행 컨텍스트에 등록한다. 2. 초기화 단계: 실행 컨텍스트에 등록된 변수 객체에 대한 메모리를 할당한다. 이 단계에서 변수는 undifined로 초기화된다. 3. 할당 단계: undefined로 초기화된 변수에 값을 할당한다. console.log(a); // undefined var a = 2; - var 로 선언된 .. 2020. 11. 8.
쿠키, 세션, 캐시 쿠키 - 클라이언트(브라우저)에 저장되는 키-값 쌍으로된 데이터 - 사용자의 편의를 위하되 수정되거나 삭제되어도 큰 문제가 없는 데이터를 저장하는데 사용된다. - http reques와 response의 header를 통해 클라이언트와 서버 사이에 주고 받는다. - 클라이언트는 서버로부터 받은 정보를 저장하고 있다가 를 웹페이지 재방문시 request와 함께 쿠키값으로 동봉하여 서버에 보낼 수 있다. 세션 - 클라이언트와 서버간 네트워크 연결이 지속적으로 유지되어 있는 상태 - 서버는 클라이언트에게 해당 클라이언트를 식별할 수 있는 유일한 세션 id를 부여 - 클라이언트가 서버에 request를 보낼때 해당 세션id를 쿠키에 동봉하여 보냄으로써 stateless한 http에서 클라이언트와 서버간 네트워크.. 2020. 11. 7.
HTTP vs HTTPS HTTP, HyperText Tranfer Protocol - HTTP는 웹브라우저(Client)와 서버(Server)간의 웹페이지(html)같은 자원을 주고 받을 때 쓰는 통신 규약 - 클라이언트인 웹브라우저가 서버에 HTTP를 통해 웹페이지나 이미지 정보를 요청하면 서버는 이 요청에 응답하여 요구하는 정보를 제공한다. HTTPS, HyperText Tranfer Protocol Secure - HTTPS는 SSL 프로토콜 위에서 돌아가는 프로토콜 - HTTP에 보안기능을 적용하여 내가 어떤 웹사이트에 보내는 정보를 제 3자로부터 정보보호하고, 기관으로부터 인증 받은 사이트만 https 주소를 사용가능하므로 내가 접속하려는 웹사이트가 신뢰할 수 있는 사이트인지 알수 있다 SSL, Secure Socke.. 2020. 11. 7.
JS 프로토타입 프로토타입언어 JavaScript는 클래스라는 개념이 없고 기존의 객체를 복사하여(cloning) 새로운 객체를 생성하는 프로토타입 기반의 언어이다. 프로토타입 기반 언어는 객체 원형인 프로토타입을 이용하여 새로운 객체를 만들어내는데 이렇게 생성된 객체 역시 또 다른 객체의 원형이 될 수 있다. 자바스크립트 함수 - 자바스크립트에서 함수를 정의하면 내부에 prototype 이라는 프로퍼티가 존재한다. prototype프로퍼티는 프로토타입객체를 참조하고 있다. - 정의한 함수를 생성자함수로써 new라는 연산자와 함께 사용하여 인스턴스를 생성할 경우 prototype프로퍼티가 참조하고 있는 프로토타입객체는 생성된 모든 인스턴스의 원형이 된다. - 이렇게 생성된 인스턴스에는 __proto__라는 프로퍼티가 있.. 2020. 11. 7.
JS 클로저 클로저, clousure란? - 어떤 함수 A에서 선언한 변수 a를 참조하는 A의 내부함수B를 외부로 전달할 경우 A의 실행 컨텍스트가 종료된 이후라도 변수 a가 사라지지 않는 현상. - 이러한 현상은 자바스크립트의 가비지 컬렉터의 동작원리 때문에 발생하는데, 자바스크립트의 가비지컬렉터는 어떤 값을 참조하는 변수가 하나라도 있다면 그 값은 수집 대상에 포함하지 않는다. V8엔진에서는 실행컨텍스트가 종료될 때 해당 실행컨텍스트의 내부함수가 실제로 사용하는 변수만 남겨두고 나머지는 가비지컬렉팅하도록 최적화 되어있다. - 클로저는 어떤 필요에 의해 의도적으로 함수의 지역변수가 계속 메모리에 머물도록 함으로써 발생하므로, 그 필요성이 사라지면 더 이상 메모리를 소모하지 않도록 관리를 하여 메모리누수 문제가 발생.. 2020. 11. 7.
JS this this란? - this는 기본적으로 실행 컨텍스트가 생성될 때 결정되므로, 어떤 방식으로 함수를 호출하느냐에 따라 this의 값이 달라진다 1. 전역공간에서의 this - 전역 공간에서 this는 전역 객체를 가리킨다. - 브라우저 환경에서 전역객체는 window이고, Node.js에서 전역객체는 global이다. - 자바스크립트의 모든 변수는 특정객체(실행 컨텍스트의 LexicalEnvironment)의 프로퍼티로 동작하므로, 전역변수 a 와 전역컨텍스트에서 this.a 와 전역객체.a 는 모두 같은 값을 가진다. 2. 매서드로서 호출할 때, 매서드 내부의 this - 함수와 메서드를 구분하는 유일한 차이는 독립성인데 함수는 그 자체로 독립적인 기능을 수행하며 메서드는 자신을 호출한 대상 객체에 관한.. 2020. 11. 7.