javaScript 실습과제

정성현·2022년 5월 17일
0

항해99

목록 보기
21/33
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);

//출력 값은  1
//		    1 101
//          1
  • 설명
    전역으로 설정한 변수 let b = 1이기 때문에 첫번째 출력값은 1이 나온다. 두번째 콘솔 값은 왜 1과 101이 출력이 되냐면 const a = 1로 할당 받고 b의 값이 1인 전역변수가 있지만 let은 block-scope이기 때문에 let b = 100이 되고 b++를 해서 101이 나오게 되는 것이다.
    마지막 출력 값 1은 전역변수인 b가 있기 때문에 출력이 된다. 주석을 지우면 오류가 나오는 것은 const a = 1 도 black-scope이기 때문에 저 함수의 블럭을 벗어나면 변수가 사라지기 때문에 오류가 나오는 것이다.
profile
I want to be programmer

0개의 댓글