본문 바로가기
부트캠프교육중/JavaScript

[JavaScript] scope문제풀이

by 뭉지야 2023. 1. 4.
728x90
function () {
    let age = 27;
    let name = 'jin';
    let height = 179;

    function outerFn() {
      let age = 24;
      name = 'jimin';
      let height = 178;

      function innerFn() {
        age = 26;
        let name = 'suga';
        return height;}

      innerFn();

      expect(age).to.equal(??);
      expect(name).to.equal(??);

      return innerFn;
    }

    const innerFn = outerFn();

    expect(age).to.equal(??);
    expect(name).to.equal(??);
    expect(innerFn()).to.equal(??);
  });
});

// ??에 들어갈답은?

#정답

function () {
    let age = 27;
    let name = 'jin';
    let height = 179;

    function outerFn() {
      let age = 24;
      name = 'jimin';
      let height = 178;

      function innerFn() {
        age = 26;
        let name = 'suga';
        return height;}

      innerFn();

      expect(age).to.equal(26);
      expect(name).to.equal('jimin');

      return innerFn;
    }

    const innerFn = outerFn();

    expect(age).to.equal(27);
    expect(name).to.equal('jimin');
    expect(innerFn()).to.equal(178);
  });
});

#풀이

디버그를 해보니 12345순서로 따라갔다

구역을 나눠서 정리해보니

27
jin -> jimin
179
----------------------
24->26   outerfn
undefined
178
---------------------
inner
"suga"
178

 

이렇게 되었다

그래서 안에 답은 26과 jimin이고

밖은 27, jimin, 178이었다.

 

728x90

'부트캠프교육중 > JavaScript' 카테고리의 다른 글

[JavaScript] 화살표함수  (0) 2023.01.04
[JavaScript] const  (0) 2023.01.04
[JavaScript] 스코프 문제  (0) 2023.01.03
[JavaScript] ES6주요문법  (0) 2023.01.03
[JavaScript] 클로저  (0) 2023.01.02