15. JavaScript Koans

Lia·2023년 5월 1일
0

총 10개의 주제에 50개의 문제가 있었다.

주제
01_Introduction.js
02_Types-part1.js
03_LetConst.js
04_ArrowFunction.js
05_Scope.js
06_Types-part2.js
07_Array.js
08_Object.js
09_SpreadSyntax.js
10_Destructuring.js

4번6번 주제가 음.. 헷갈렸다. 스코프,클로저,자료형에 대한 공부가 더 필요한 듯 하다. 풀이는 계속 이해되는대로 정리하고 반복학습해야겠다.

문제

it('lexical scope에 대해서 확인합니다.', function () {
    let message = 'Outer';

    function getMessage() {
      return message;
    }

    function shadowGlobal() {
      let message = 'Inner';
      return message;
    }

    function shadowGlobal2(message) {
      return message;
    }

    function shadowParameter(message) {
      message = 'Do not use parameters like this!';
      return message;
    }

    expect(getMessage()).to.equal('Outer');
    expect(shadowGlobal()).to.equal('Inner');
    expect(shadowGlobal2('Parameter')).to.equal('Parameter');
    expect(shadowParameter('Parameter')).to.equal('Do not use parameters like this!');
    expect(message).to.equal('Outer');
  });

let message = 'Outer';를 통해 message 변수가 선언
이 변수는 getMessage 함수에서 참조됨

getMessage 함수는 message 변수를 반환
이 함수는 message 변수가 선언된 스코프에서 변수를 참조하므로 'Outer'를 반환

shadowGlobal 함수는 let message = 'Inner';를 통해 message 변수를 다시 선언
이 변수는 shadowGlobal 함수 내에서만 유효하기 때문에'Inner'를 반환

shadowGlobal2 함수는 매개 변수 message를 사용하여 message 변수를 선언하지 않음. 대신 매개 변수의 값을 반환

shadowParameter 함수는 매개 변수 message를 사용하여 message 변수를 선언. 이 함수는 매개 변수 값을 변경하고, 변경된 값을 반환.

함수 내부에서 선언된 변수가 외부 스코프에 영향을 미치지 않음
함수의 매개 변수 값은 함수 내에서 변경가능! 하지만 호출하는 쪽의 값은 변경되지 않음,,

profile
https://lia-portfolio.vercel.app/

0개의 댓글