728x90
var는 한번 선언된 변수를 다시 선언할 수 있다
var는 선언하기 전에 사용할 수 있다.
아래 선언되어있어도 상위에 선언된걸로 인식됨(호이스팅)
console.log(name);
var name = Mike;
호이스팅: 스코프 내부 어디서든 변수 선언은 최상위에 선언된것처럼 행동
TDZ: Temporal Dead Zone
TDZ영역에 있는 변수들은 할당 전 사용할 수 없음
let age = 30;
function showAge() {
console.log(age);
let age = 20; //문제 발생
}
showAge();
변수 생성과정
var
1. 선언 및 초기화 단계
2. 할당단계
var은 선언과 초기화가 동시에 이루어짐
let
1. 선언단계
2. 초기화단계
3. 할당단계
let은 따로 이루어짐
const는 선언 + 초기화 + 할당이 동시에 이루어짐
let name;
name = 'Mike';
var age;
age = 30;
const gender; //선언과 동시에 할당을 하지 않아 에러 발생
gender = 'male';
var: 함수 스코프
let, const: 블록 스코프
블록 스코프는모든 코드 블록 내에서 선언된 변수는 코드블록 내에서만 이용 가능하며 외부에서는 이용 못함
즉 지역변수
함수 스코프는 함수 내에서만 선언된 변수만 지역 변수가 됨
const age = 30;
if(age > 19) {
var txt = '성인';
}
console.log(txt); //var, const는 이렇게 사용 불가능
function add(num1, num2) {
var result = num1 + num2;
}
add(2, 3);
console.log(result); //var는 함수에서는 오로지 지역변수로만 사용가능 즉, 모든 변수가 벗어날 수 없는 변수는 함수라 생각하면 됨
728x90
'Web > JavaScript' 카테고리의 다른 글
[JS] 객체 메소드, 컴퓨티드 프로퍼티 (0) | 2024.02.06 |
---|---|
[JS] 생성자 함수 (0) | 2024.02.06 |
[JS] 배열 (0) | 2024.02.05 |
[JS] 객체 (0) | 2024.02.05 |
[JS] 함수2 (2) | 2024.02.05 |