변수 선언하는 키워드 없이 선언 그리고 할당이 가능하다. 그래서 선언인지 재할당인지 구분하기 어렵다. 변수 선언 안해도 출력은 정삭적으로 된다.
something = 'one';
console.log(something) //'one'
중복 선언이 가능하다.. 같은 변수명으로 여러 번 선언이 가능해서 나중에 에러가 발생하면 원인을 찾기 어렵다. 특히 협업을 할 때 더더욱 안 좋다.
let var = 'bad' // 'bad'
let var = 'veryBad' // 'veryBad'
conosle.log(var)
블록 레벨 스코프 무시한다. 지역 변수와 글로벌 변수가 동일해진다.
원래 외부에서 내부에 있는 변수 접근 불가능하다. 하지만 var 경우에는 외부에서 내부 접근이 가능해진다.
var result= 'global scope'
{
{
var result = 'firstBlock'
{
var result = 'secondBlock'
}
}
}
console.log(result); // secondblock
함수 레벨 스코프만 지원이 된다.
함수 내부에 있는 변수를 접근하면 undefined이 출력되는 것을 볼 수 있습니다.
function example() {
var pet = 'dog'
}
console.log(pet) // dog is not defined