실습 과제
- 콘솔에 찍힐 b 값을 예상해보고, 어디에서 선언된 “b”가 몇번째 라인에서 호출한 console.log에 찍혔는지, 왜 그런지 설명해보세요. 주석을 풀어보고 오류가 난다면 왜 오류가 나는 지 설명하고 오류를 수정해보세요.
- let b = 1; function hi () { const a = 1; let b = 100; b++; console.log(a,b); } //console.log(a); console.log(b); hi(); console.log(b);
let b = 1;
function hi () {
const a = 1;
let b = 100;
b++;
console.log(a,b);
}
//console.log(a);
console.log(b);
hi();
console.log(b);
let b = 1;
function hi () {
const a = 1;
let b = 100;
b++;
console.log(a,b);
//const, let은 같은 함수내의 스코프까지만 유효하기때문에 함수 내부에서 가져옴.
}
console.log(a); // a는 전역변수로 선언된 것이 없다.
console.log(b); //함수 위에 변수를 선언하고 값이 있으서 전역변수에서 가져옴.
hi();
console.log(b); //역시 함수 밖이기때문에 전역변수에서 가져옴.