과제를 했지만 작성한 코드가 마음에 들지 않는다.
(너무 if문 투성이)
오늘 빌린 JS책과 공식문서를 당분간 꾸준히 읽을 생각이다.
var로 선언한 변수는 let으로 선언한 변수와 유사합니다. 대부분의 경우에 let을 var로, var를 let으로 바꿔도 큰 문제 없이 동작합니다.
var로 선언한 변수의 스코프는 함수 스코프이거나 전역 스코프입니다. 블록 기준으로 스코프가 생기지 않기 때문에 블록 밖에서 접근 가능합니다.
if (true) {
var test = true; // 'let' 대신 'var'를 사용했습니다.
}
alert(test); // true(if 문이 끝났어도 변수에 여전히 접근할 수 있음)
function sayHi() {
if (true) {
var phrase = "Hello";
}
alert(phrase); // 제대로 출력됩니다.
}
sayHi();
alert(phrase); // Error: phrase is not defined
function sayHi() {
// var phrase; 동일 '호이스팅'
phrase = "Hello";
alert(phrase);
var phrase;
}
sayHi();