📖 [강의 내용 및 개념 정리]
목차
Scope는 범위라는 의미이며, 자바스크립트에서 "변수의 유효범위"를 의미한다.
let username = 'kimcoding';
if (username) {
let message = `Hello, ${username}!`;
console.log(message); // Hello, kimcoding!
}
console.log(message); // ReferenceError
바깥쪽 스코프에서 선언한 변수는 안쪽 스코프에서 사용 가능하다.
반면에, 안쪽에서 선언한 변수는 바깥쪽 스코프에서는 사용할 수 없다.
// 전역 변수
let username = 'kimcoding';
if (username) {
// 지역 변수
let message = `Hello, ${username}!`;
}
지역 스코프에 선언한 변수는 지역 변수, 전역 스코프에서 선언한 변수는 전역 변수입니다.
let name = '김코딩';
function showName() {
// 함수 안에서 선언 -> 새로운 변수
let name = '박해커';
console.log(name); // 박해커
}
console.log(name); // 김코딩
showName();
console.log(name); // 김코딩
let name = '김코딩';
function showName() {
// 변수 재할당
name = '박해커';
console.log(name); // 박해커
}
console.log(name); // 김코딩
showName();
console.log(name); // 박해커
주의점!!)
화살표 함수는 함수 스코프가 아닌 블록 스코프이다.
let과 const를 사용하는 것이 권장되는 방법
브라우저의 전역객체: Window
var
주의점!!) 화살표 함수의 블록 스코프는 무시하지 않음
주의점!!) 재선언을 방지하지 않음
주의점!!) 전역 변수를 var로 선언하는 경우 문제가 발생할 가능성이 있음
주의점!!) 선언 없이 변수를 할당할 경우 전역 변수 취급됨
use strict