# 스코프?
함수, 변수에 접근할 수 있는 범위
외부에서는 접근 불가능한 범위
스코프의 종류로는 전역, 로컬(블록, 함수)
let scope1 = 10
{
console.log(scope1) // 10, 위에서 찾아옴
}
let scope1 = 10
{
console.log(scope1) // 오류남
let scope1 = 20
}
왜 오류..? → 자신의 스코프 안에서 먼저 찾는데, 밑에서 선언을 하니까 오류부터 남
# 블록 스코프?
if, for, 함수 등의 중괄호 내부를 가리킴
블록 스코프를 가지는 변수는 바깥에서는 접근 불가능
let x = 1
if (x == 1) {
let x = 2
console.log(x) // 2
}
console.log(x) // 1
지역 변수가 없다면 상위로 가서 찾음
let x = 1
if (x == 1) {
// let x = 2
console.log(x) // 1
}
console.log(x) // 1
# 함수 스코프?
함수 내부에서 사용하는 영역
var, let, const 모두 외부에서 사용 불가능
function abc() {
var varTemp = 10
let letTemp = 20
}
console.log(varTemp) // 에러남
console.log(letTemp) // 에러남
// 함수 스코프 내부의 변수를 참조할 수 없어서 에러남
if (true) {
var varTemp = 10
let letTemp = 20
}
console.log(varTemp) // 얘는 된다
console.log(letTemp) // 얘는 안됨....
// var는 뚫고 나옴
근데.. var는 함수 스코프에서만 지역 변수로 인식
블록 스코프에서는 전역 변수처럼 인식
^^...
만악의 근원 var...
sivar..
'FrontEnd > JavaScript' 카테고리의 다른 글
[JS] 얕은 복사와 깊은 복사 (0) | 2023.10.26 |
---|---|
[JS] 'this' keyword (0) | 2023.10.25 |
[JS] 배열(Array) (0) | 2023.10.25 |
[JS] JSON (0) | 2023.10.25 |
[JS] Object(객체) (0) | 2023.10.25 |