ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 실습과제
    항해99 2022. 7. 21. 18:43

    실습 과제

     

    콘솔에 찍힐 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;
    const a = 1;    // a변수 값을 전역변수로 빼준다.
    
    function hi () {
        let b = 100;
        b++;
        console.log(a,b);
    }
    
    console.log(a);
    
    console.log(b);
    
    hi();
    
    console.log(b);

    a 변수가 함수 hi()의 지역변수였기 때문에 함수 밖에서 변수를 호출하여 console.log()를 찍어줘도 정의가 되지않았다는 오류를 뿜으며 실행되지 않는다. 
    가장 간단한 해결책은 변수 a 값을 전역변수로 바꿔 주면 정상적으로 출력된다. 

     

    또한 변수 b의 값은 함수를 호출하기 전에 값은 1이다. 함수를 실행하기 전까지 변수 값은 변하지 않는다.

    함수를 호출한 후에는 b의 값에 100을 줬고 증감연산자를 통해 +1이 되어 101로 바뀌게 되었다. 그렇기 떄문에 함수를 호출한 후에

    변수 b의 값은 101이 된다.

    '항해99' 카테고리의 다른 글

    취업특강  (0) 2022.10.09
    220917 3주 MVP 중간발표  (0) 2022.09.21
Designed by Tistory.