- 자바스크립트에서 Scope란, 변수 혹은 함수를 선언하게 될 때, 해당 변수 또는 함수가 어디서부터 어디까지 유효한지 나타내는 범위.
- Global, Function, Block이란 3가지 종류가 있음.
- Global : 코드의 모든 범위에서 사용 가능함
- Function: 특정 함수 내부에서만 사용 가능함
- Block : if / for / switch문에서 사용 가능함
const value = "hello";
function myFunction() {
console.log("myFunction : ");
console.log(value);
}
function otherFunction() {
console.log("otherFunction : ");
const value = "bye";
console.log(value);
}
myFunction();
otherFunction();
console.log("global scope: ");
console.log(value);
const value = "hello";
function myFunction() {
const value = "bye";
if (true) {
const value = "world";
console.log("block scope: ");
console.log(value);
}
console.log("function scope: ");
console.log(value);
}
myFunction();
console.log("global scope:");
console.log(value);
- const, let으로 선언한 값은 블록 스코프 안까지만 지정됨 -> 값이 변하지 않음
- 만약 var키워드로 바꾼다면, 블록 스코프 바깥까지 지정이 되어서 값이 변하게 됨 -> var를 사용하면, 이런 실수를 할 수 있기 대문에 const나 let을 쓰는 것을 지향
728x90
반응형
'Language > JavaScript' 카테고리의 다른 글
Promise (0) | 2022.11.27 |
---|---|
Hoisting (0) | 2022.11.27 |
함수 인자에서 rest (0) | 2022.11.27 |
함수 파라미터에서 rest (0) | 2022.11.27 |
rest (0) | 2022.11.27 |