반응형
var val = 10; // 전역 변수 num을 선언
function changeValue() {
console.log(val); // 10
val = 20; // 전역 변수 함수 내부에서 변경
}
changeValue();
console.log(val); // 20
var val = 10; // 전역 변수 num을 선언
function changeValue() {
console.log(val); // undefined
var val = 20; // 지역 변수 값 초기화
}
changeValue();
console.log(val); // 10
var의 호이스팅
let, const는 아니지만 var는 변수 선언 시 undefined로 정의함
*changeValue 함수 내에서 일어나는 일* == 호이스팅
var val; // undefined
console.log(log); // undefined
val = 20;
- 전역 스코프에서 var val = 10;가 선언되고 초기화됩니다. val 변수는 10의 값을 가집니다.
- changeValue(); 함수가 호출됩니다.
- changeValue 함수 내에서 console.log(val)이 실행될 때 val 변수가 호이스팅되고 함수 스코프 내에서 선언되었습니다. 그러나 아직 초기화되지 않았으므로 undefined가 출력됩니다.
- 마지막으로 함수 내에서 var val = 20;이 실행되고, val 변수는 20으로 초기화됩니다.
var val = 10; // 전역 변수 num을 선언
function changeValue() {
var val = 20; // 지역변수 초기화
console.log(val); // 20
}
changeValue();
console.log(val); // 10
반응형
'Front-End > JavaScript' 카테고리의 다른 글
[JavaScript/jQuery] 상위 및 하위 요소 접근하기 closest/find() (0) | 2022.08.25 |
---|---|
[카카오 지도 API] 좌표 값 2차원 배열에 추가하는 법 (0) | 2021.07.06 |
[자바스크립트] 이벤트 처리 onclick/addEventListener() (0) | 2021.05.25 |
[자바스크립트] 선택자 별 DOM 요소 접근하기(Class, Id, Tag, QuerySelector) (0) | 2021.05.25 |