[JS]Scope
스코프
변수의 유효범위
상위 스코프에서 유효한 변수는 하위 스코프에서 자유롭게 참조할 수 있지만 하위 스코프에서 유효한 변수는 상위 스코프에서 찹조할 수 있음
렉시컬 스코프는 함수를 어디서 호출하는지가 아니라 어디에 선언하였는지에 따라 결정됨
let user = {
name: "DK",
age: 20,
};
if (user) {
let result = `${user.name}`;
console.log(result); // DK
}
console.log(result); // ReferenceError
let name = "DK";
const showName = () => {
let name = "SB";
console.log(name);
};
console.log(name); // DK
showName(); // SB
console.log(name); // DK
let name = "DK";
const showName = () => {
name = "SB";
console.log(name);
};
console.log(name); // DK
showName(); // SB
console.log(name); // SB
스코프의 종류
-
블록스코프
중괄호를 기준
블록스코프 안에서 정의된 변수는 블록을 벗어나면 접근할 수 없다.
하지만 var는 이를 무시함 하지만 화살표함수는 무시 안함
-
함수스코프
함수선업식 및 함수표현식은 함수 스코프를 만든다.
화살표함수는 블록스코프 취급
window 객체
var로 선언된 전역변수 및 전역함수는 window 객체에 속한다.
var dd = "dd";
console.log(window.dd); // dd
// customElements 안에 있다.
댓글남기기