S1_U9_과제. JavaScript Koans

Judevv·2023년 5월 3일
0

과제. JavaScript Koans

학습 목표

  • JavaScript의 주요 개념인 아래의 내용에 대해 설명할 수 있다.
    • JavaScript의 타입
    • 변수 선언 키워드 let과 const
    • 화살표 함수
    • 스코프
    • 배열
    • 객체
    • spread
    • 구조분해할당
  • Koans는 결론을 내리기 전에 이게 왜 맞는지 깊게 고민한다는 의미

문제 정리

  • 전체 풀이 X, 개념 정리

02_Types-parts1

  • 숫자 + '문자열' = '문자열'

    • 1 + '1' = '11'
  • 숫자 - '문자열' = 숫자

    • 11 - '1' = 11
  • 숫자 + 불리언 = 숫자

    • 1 + true = 2
  • '문자열' + 불리언 = '문자열'

    • '1' + true = '1true'

    04_Scope

  • lexical scope와 closure

    it('lexical scope와 closure에 대해 다시 확인합니다.', 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; // 상위 값인 178을 참조
         }
    
         innerFn();
    
         expect(age).to.equal(26);
         expect(name).to.equal('jimin');
    
         return innerFn;  // outerFn 함수를 실행하면 반환값은 innerFn 함수 
       } // innerFn 함수는 height 반환
    
       const innerFn = outerFn();
    
       expect(age).to.equal(27);
       expect(name).to.equal('jimin');
       expect(innerFn()).to.equal(178);
     });

    마무리

    답은 이미 있고, 왜 그것이 답인가를 생각하는게 쉬울 줄 알았는데 오히려 더 어려웠다. 아직 정리되지 않은 개념들을 다시 훑어보면서 했는데, 클로저 개념이 헷갈려서 고전했다. 그래도 페어분이 잘 설명해주시고, 자료 찾아가면서 하니까 금방 다 풀고, 이해하긴 했는데, 나중에 다른 문제들도 찾아보면서 해봐야겠다.

profile
감성있는 개발자를 꿈꿔요

0개의 댓글