전역 스코프(Global Scope): 가장 바깥쪽의 스코프
지역 스코프(local Scope): 전역이 아닌 다른 스코프
※우선순위: 지역 변수 > 전역 변수
스코프의 종류
1.블록 스코프
-중괄호를 기준으로 범위가 구분됨.
※ 화살표 스코프도 블록 스코프로 취급.
-블록 스코프 안에서 정의된 변수는 블록 범위를 벗어나는 즉시 접근 불가.
-> 블록범위를 벗어나는 console.log()는 ReferenceError
2.함수 스코프
function 키워드가 등장하는 함수 선언식 및 함수표현식으로 만들어짐.
let vs var vs const
let | const | var | |
유효 범위 | 블로스코프/함수 스코프 | 블록 스코프/함수 스코프 | 함수 스코프 |
값 재할당 | 가능 | 불가능 | 가능 |
재선언 | 불가능 | 불가능 | 가능 |
let : var 보다 사용권장.
const: 변하지 않는 값 정의. 값 재할당할 경우 TperError
var: 블록스코프 중 화살표 함수는 무시하지않음. 함수 스코프의 최상단에 선언
: 브라우저의 내장 기능을 사용하지 못하게 만들 수 있다.
선언 없이 변수 할당 하지 말 것!
-선언없이 변수 할당할 경우, 변수는 var로 선언한 전역변수처럼 취급.
window 객체
-브라우저 창을 대표하는 객체
-브라우저 창과 관계없이 전역 항목도 담고 있음.
-var로 선언된 전역 변수와 전역 함수가 window 객체에 속함
실수 방지를 위해서 js파일 상단에
'use strict'
입력 후 사용
종합퀴즈
get함수 스코프내에 x 변수가 별도로 선언되어 있지 않음. 20은 사용되지 않는 값
let x = 30;
function get () {
return x;
}
let result = get(20); //30
get함수에 매개변수 x가 선언되어 있음. get함수가 반환하는 x는 전역스코프의 x가 아닌 별도의 매개변수.
let x = 30;
function get (x) {
return x;
}
let result = get(20); //30
'개발공부 > 개념정리 | Javascript' 카테고리의 다른 글
spread/rest (0) | 2022.07.11 |
---|---|
클로저 (0) | 2022.07.11 |
원시 자료형 vs 참조 자료형 (0) | 2022.07.11 |
문자열 (0) | 2022.06.27 |
조건문 (0) | 2022.06.27 |