[javascript] 12-02 javascript study

2021-12-02

12-02 (목)

part 2 - Function

  1. 함수를 선언할 때의 방법은 2가지가 있음
    1. 함수 선언식
    2. 함수 표현식

    → 함수 표현식의 특징은 먼저 호이스팅 되지 않는다는 점이 있음 (상단에 작성하지 않고 호출된 아래 작성하면 에러가 남)

    → 이어서 특징은 클로져를 이용해 기능을 만들 수 있음, 전달인자로 응용가능함

  2. 함수의 매개변수 자리의 기본값 설정 가능

    만약 기본값을 설정하지않았다면 undefined 가 뜰 것!

    매개변수의 갯수를 딱히 설정하지 않아도 배열로 처리해서 계산할 수 있게끔 하는 방법

     /* 1. arguments로 처리방법 */
        
     function test(){
     	console.log('매개변수 갯수', arguments.length);
     	console.log('매개변수 형태', arguments);
     }
        
     test(1, 3); 
     // '매개변수 갯수', 2
     // '매개변수 형태', Argument (2) [1, 3]
    
     /* 2. 나머지 매개변수로 처리방법 */
        
     function myFun(a, b, ...manyMoreArgs) {
       console.log("a", a);
       console.log("b", b);
       console.log("manyMoreArgs", manyMoreArgs);
     }
        
     myFun("one", "two", "three", "four", "five", "six");
        
     // 콘솔 출력:
     // a, one
     // b, two
     // manyMoreArgs, [three, four, five, six]
    
  3. (출처) 함수 선언은 아주 쉽게 (때로는 무심코) 함수 표현식으로 바꿀 수 있습니다. 다음 두 가지 중 하나라도 만족할 경우 함수 선언이 아니라 함수 표현식이 됩니다.
    • 표현식의 일부가 될 때
    • 함수나 스크립트의 ‘본 요소’가 아닌 경우. ‘본 요소’는 함수나 스크립트 본문의, 중첩되지 않은 명령문을 의미합니다.
    • 예시코드

        // 함수 선언
        function foo() {}
              
        // 함수 표현식
        (function bar() {})
              
        // 함수 표현식
        x = function hello() {}
              
        if (x) {
           // 함수 표현식
           function world() {}
        }
              
        // 함수 선언
        function a() {
           // 함수 선언
           function b() {}
           if (0) {
              // 함수 표현식
              function c() {}
           }
        }
      

Part 2 - Array

  1. 인덱스 위치에 있는 항목 제거하기

     let testArr = ['사과', '바나나', '레몬', '샤인머스캣'];
     let removeItems = testArr.splice(1, 1); // 2번째거, 한개 제거할 때
        
     console.log(removeItems); // ['바나나']
        
     let removeItems2 = testArr.splice(0); // 1번째거부터 끝까지 제거할 때
        
     console.log(testArr); // []
    
  2. 인덱스 위치에서부터 여러개의 항목 제거하기

     let testArr = ['호랑이', '토끼', '고양이', '강아지']
     let removeItems = testArr.splice(2, 2); // 3번째거부터 2개 제거
        
     console.log(testArr); // ['호랑이', '토끼']
     console.log(removeItems); // ['고양이', '강아지']
    
  3. 배열 복사하기

     let copyArr = testArr.slice() // 사본을 만드는 방법
     // ["호랑이", "토끼"]