■ Hoisting
자바스크립트에서는 변수나 함수를 선언했을 때 Hoisting 이라는 현상이 생깁니다.
Hosting은 변수나 함수의 선언 부분을 변수의 범위 맨 위로 강제로 끌고가서 먼저 해석하는 현상을 뜻합니다.
function 함수(){
console.log(이름);
var 이름 = 'Kim';
}
function 함수(){
var 이름; // 선언 부분을 맨 위로 끌고감
console.log(이름); // 아직 변수에 할당이 되지 않았기 때문에 undefined 출력
이름 = 'Kim';
}
위 코드들을 보면 var 변수는 자동으로 undefined 라는 값을 할당해주지만,
let 과 const 변수는 선언문 이전에 변수를 사용할 경우 에러가 발생합니다.
function 함수() {
console.log(안녕);
let 안녕 = 'Hello!';
}
// 에러 출력
■ 전역변수
전역변수는 모든 함수, if, for 문 내부에서 공통적으로 사용할 수 있는 유용한 변수를 뜻합니다.
//전역변수만들기
var 이름 = 'kim';
window.나이 = 20; // 조금 더 전역변수를 엄격하게 관리 가능
//전역변수사용하기
console.log(이름);
console.log(window.나이);
//전역변수변경하기
이름 = 'lee';
window.나이 = 30;
let a = 1;
var b = 2;
window.a = 3;
window.b = 4;
console.log(a + b); // 5출력
b는 전역변수로 재할당이 되어 4를 출력합니다.
자바스크립트는 변수를 사용할 때 참조할만한 변수가 내 주변에 없으면 계속 상위 중괄호로 시선을 돌리면서 참조하기 때문에,
a는 1을 출력하여 합은 5가 됩니다.
'JavaScript' 카테고리의 다른 글
JavaScript(Spread Operator) (0) | 2023.06.01 |
---|---|
JavaScript(Tagged literals와 apply, call 함수) (0) | 2023.06.01 |
JavaScript(화살표 함수) (0) | 2023.05.29 |
JavaScript(this 키워드) (0) | 2023.05.29 |
JavaScript(Switch 문법) (0) | 2023.05.26 |