-자바스크립트 엔진(인터프리터)이 실행하기전에 변수,함수,클래스등을 최상단으로 끌어올리는 작업
-ES6 이전에는 변수 클래스는 호이스팅 작업시 선언과 초기화가 함께 진행되었으니, ES6 부터는 선언만 가능해짐
-ES6 기준으로 let,const 키워드가 등장함
-var는 되도록 사용x,let, const를 사용하여 명확한 프로그래밍 가능
-다른 언어와 코딩 방식의(변수 할당등) 차이로 디버깅이 어려움
-코드의 가독성과 유지보수 측면에서 좋지 않음
name = '홍길동'; --> var name = '홍길동';
var person = "홍길동";
var person = "홍길순";
var fruit = "apple";
{
var fruit = "orange";
console.log(fruit); // orange
}
console.log(fruit); // orange
var test = "test";
function varTest() {
var test = "test2";
console.log(test);
}
console.log(test); //test
7.프로토타입 (Prototype)
- 자바스크립트에서 객체지향 적으로 프로그래밍을 하기 위해 프로토타입이 제공되며, 공통적인 특징,기능,상태 등을 저장하여 필요한 객체에게 상속을 통해 적용할 수 있다. -최상위 프로토타입(클래스)은 Object로 생성되는 모든 객체는 상속을 받아 구현된다. */
class Parent {
constructor() {
this.name = "부모";
}
}
class Person extends Parent {
constructor() {
super();
this.name = "hong";
this.age = 20;
}
}
hong = new Person();