호이스팅 : 스코프 내부 어디서든 변수 선언은 최상위에 선언된 것 처럼 행동
console.log(name); // TDZ
const name ="Mike"; // 함수 선언 및 할당
consol.lo(name); //사용가능
호이스팅은 스코프 단위로 일어남
let age = 30;
function showAge(){
consol.log(age);
let age = 20; // tdz
}
showAge(); //30
변수의 생성과정
var
- 선언 및 초기화 단계
- 할당 단계
const
- 선언 + 초기화 + 할당
let
- 선언 단계
- 초기화 단계
- 할당 단계
let name;
name = 'Mike';
var age;
age = 30;
const gender;
gender = 'male';
//신택스 에러 발생, 선언하면서 바로 할당을 하지 않았음
var
: 함수 스코프
let,const
: 블록 스코프 (함수, if문, for문, try/catch 문 등)
const age = 30;
if(age>19) {
var txt = '성인';
//if문 밖에서도 사용 가능
//const,let은 불가
}
consol.log(txt); //성인
function add(num1,num2){
var result = num1 + num2;
}
add(2,3);
console.log(result);
//함수 스코프를 호출해서 에러 발생
'기억보단 기록을 > JS' 카테고리의 다른 글
javrscript Intermediate Class 생성자 함수 (0) | 2023.07.15 |
---|