javascript :: variable scope

지유·2024년 4월 24일
0

javascript

목록 보기
7/10
post-thumbnail

Variable Scope


🧸 변수의 유효범위

let x = 10;

function printX(){
    console.log(x);
}

console.log(x); 
printX(); 

✔️ 전역 변수 : 전체 영역에 영향을 미치는 변수.

function printX(){
    let x = 10;
    console.log(x);
}

// console.log(x); // Error : x is not defined...
printX(); // 10

✔️ 지역 변수 : 함수 내부에만 영향을 미치는 변수.

🧸 Var 키워드

function scope() {
	console.log(a)
	if (true) {
		var a = 123
	}
}
scope() // Undefined

✔️ 함수 레벨의 유효범위
: 함수 내라면 어디서든 사용가능. 함수 외부에서 선언할 경우, 전역 변수.

① 변수 중복선언 가능. ② 변수 재할당 가능

📌 Caution
의도하지 않은 범위에서 사용 가능하여 메모리 누수 발생 위험 → 사용권장 X.

🧸 const 키워드

function scope() {
	if (true) {
		const a = 123
	}
	console.log(a)
}
scope() 
// Uncaught ReferenceError : a is not defined..

✔️ 블럭 레벨의 유효범위
: 모든 코드 블럭 [ 함수 / if 문 / for 문 ... ] 을 지역 스코프로 인정 .

① 변수 중복 선언 불가 ② 변수 재할당 금지 ③ 선언과 동시에 초기화
그러나 변수에 객체를 할당한 경우, 값을 변경할 수 있다.

🧸 let 키워드

function scope() {
	if (true) {
		let a; 
        a = 123; 
	}
	console.log(a)
}
scope() 
// Uncaught ReferenceError : a is not defined..

✔️ 블럭 레벨의 유효범위
: 모든 코드 블럭 [ 함수 / if 문 / for 문 ... ] 을 지역 스코프로 인정 .

① 변수 중복 선언 불가 ② 변수 재할당 가능

📌 Caution
주로 재할당이 필요한 경우에만 let 키워드를 사용하며, 일반적으로는 const 키워드를 사용한다.

profile
저의 공간에 오신 걸 환영해요 ☺️

0개의 댓글