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