변수의 선언은 가장 먼저 실행된다.
console.log(a); // undefined (값을 할당받지 못한 변수의 상태)
var a = 1;
// 실행순서
var a;
console.log(a);
a = 1;
변수선언을 하지 않으면 ⇒ 전역객체에 속성으로 붙게된다. window.a
a = 1;
console.log(a); // 1 => 선언하지 않으면 a는 전역객체가 된다 => window.a
변수를 선언하지 않았기 때문에 아래 문은 에러가 난다.
console.log(a); // error
a = 1;
❗지역변수와 전역변수에서 우선순위는 지역변수가 높다.
자바스크립트에서는 중괄호가 변수 영역을 나누지 않음.
{
var a = 1;
}
console.log(a); // 1
함수 안에서 선언한 변수는 함수 안에서만 사용할 수 있음
자바스크립트는 함수영역으로만 변수영역을 나눔 (스코프)
function f1(){
var a = 1;
}
f1();
console.log(a); // error
하지만 변수 선언 시 var를 붙이지 않으면 전역객체의 속성으로 붙기 때문에 에러가 나지 않는다.
function f1(){
a = 1; // window.a
}
f1();
console.log(a); // 1