Hoisting
아래와 같은 코드가 있다고 하자.
function myfunction(){
var name = 'kim'
}
var address = 'suwon' // 1.
이때 Javascript는 아래와 같이 해석한다.
var address;
function myfunction(){
var name = 'kim'
}
address = 'suwon'
처음의 1번부분에서 새로운 변수를 만나면 변수의 선언을 맨위로 끌고와 해석한다.
따라서 아래와 같은 상황에서 에러가 발생하지 않고
console.log(name);
var name = 'kim';
console.log(name);
처음에 undefined가 출력된다.(let이나 Const는 해당X)
또 동시에 변수를 선언할 수 있다.
var name = 'kim', age = 20, address = 'suwon';
전역변수
모든 곳에서 쓸 수 있는 변수
var age = 20; // 전역변수
window.name = 'kim' // 함수도 가능. 이 방법을 권장한다.
function myfunction(){
var name = 'kim' // 지역변수 {}안에서만 사용 가능
}
참조
참조할 수 있는 변수에 관해.
var age = 20;
function myfunction(){
console.log(age)
}
에서 바깥쪽에 있는 age를 참조한다.