{} 중괄호 기준으로 범위가 구분됨
(but var 키워드로 정의한 변수는 블록 스코프를 무시하고, 함수 스코프만 따름, 고로 var 보단 let과 const를 사용하는 것을 권장)
Function이 등장하는 함수식은 함수 스코프를 만듬 ( but 화살표 함수는 블록 스코프)
전역 변수는 가장 바깥 스코프에 정의한 변수 그래서 어디서든 접근이 가능
선언 없이 변수를 할당할 경우 해당 변수는 var로 선언한 전역변수로 취급
브라우저가 보다 엄격하게 작동 , 문법적으로 실수할 경우 에러로 판단
Ex)
let name = 'apple'; // 전역 변수
function showName() {
let name = 'peach'; // 지역 변수
console.log(name); // 두번째 출력
}
console.log(name); // 첫번째 출력 apple
showName(); // peach
console.log(name); // 세번째 출력 apple
Ex)
let name = ‘apple’; // 전역 변수
function showName() {
name = 'peach';
console.log(name); // 두번째 출력
}
console.log(name); // 첫번째 출력 apple
showName(); // peach
console.log(name); // 세번째 출력 peach
showName 함수가 실행되기 전, 처음에는 ‘apple’을 출력하고, 그 이후에는 전역변수 name의 값이 바뀌기 때문에 두번째 및 세번째 출력에 ‘peach’가 출력됨