자세한 JavaScript 기능 개요

함수 소개



함수는 실행해야 할 때마다 호출할 수 있는 재사용 가능한 코드 블록입니다. 함수는 함수(재귀 함수) 내에서 또는 코드의 어디에서나 호출할 수 있습니다.

JavaScript에서는 두 가지 방법으로 함수를 만들 수 있습니다.
  • 함수 선언
  • 함수 표현식

  • 함수 선언



    함수 선언문이라고도 하는 함수 선언은 지정된 매개변수를 사용하여 함수를 정의합니다. 함수 선언으로 생성된 함수에는 이름이 필요합니다.

    // Example of function declaration
    function sum(a,b) {
       return a+b;
    }
    sum(2,5) // 7
    


    위의 함수는 두 숫자 a와 b의 합을 반환합니다. 함수 매개변수 a 및 b는 값으로 함수에 전달되므로 함수 본문 내의 코드가 함수에 전달된 매개변수에 완전히 새로운 값을 할당하는 경우 변경 사항이 전체적으로 또는 해당 함수를 호출한 코드에 반영되지 않습니다. .

    기본적으로 함수는 정의되지 않은 값을 반환합니다. 다른 값을 반환하려면 함수에 반환할 값을 지정하는 return 문이 있어야 합니다.

    함수 선언 호이스팅



    JavaScript의 함수 선언은 둘러싸는 함수 또는 전역 범위의 맨 위로 호이스팅됩니다. 선언하기 전에 함수를 사용할 수 있습니다.

    declarationHoisted();       // logs "hoisted function"
    
    function declarationHoisted() {
      console.log('hoisted function');
    }
    


    기능 범위



    전역 범위에 정의된 함수는 전역 범위에 정의된 모든 변수에 액세스할 수 있습니다. 다른 함수 내부에 정의된 함수는 상위 함수에 정의된 모든 변수와 상위 함수가 액세스할 수 있는 다른 모든 변수에도 액세스할 수 있습니다.

    // The following variables are defined in the global scope
    let num1 = 20,
    let  num2 = 3,
    let  name = 'mohan';
    
    // This function is defined in the global scope
    function multiply() {
      return num1 * num2;
    }
    
    multiply(); // Returns 60
    
    // A nested function example
    function getScore() {
      let num1 = 2,
      let num2 = 3;
    
      function add() {
        return name + ' scored ' + (num1 + num2);
      }
    
      return add();
    }
    
    getScore(); // Returns "mohan scored 5"
    
    


    함수 표현



    함수 표현식은 함수 선언과 매우 유사하며 구문도 거의 동일합니다. 함수 표현식과 함수 선언의 주요 차이점은 함수 이름이며 익명 함수를 생성하기 위해 함수 표현식에서 생략할 수 있습니다.

    // Example of anonymous function expression
    let sayHiAnonymous = function() {
      console.log("hello");
    };
    // Example of arrow function expression
    let sayHiArrow = () =>{
      console.log("hello");
    }
    


    함수 표현식 호이스팅



    JavaScript의 함수 표현식은 함수 선언과 달리 호이스팅되지 않습니다. 함수 표현식을 생성하기 전에는 함수 표현식을 사용할 수 없습니다.

    console.log(notHoisted) // undefined
    //  even though the variable name is hoisted, the definition isn't. so it's undefined.
    notHoisted(); // TypeError: notHoisted is not a function
    
    var notHoisted = function() {
       console.log('bar');
    };
    


    함수 인수 및 매개변수



    함수에 전달되는 것의 수를 함수 인수라고 하고 함수가 호출되는 매개변수의 수를 함수 매개변수라고 합니다.

    const myFunc = function(a:any,b:any){
    console.log(`number of things passed in function ${arguments.length}`);
    
    console.log(`The number of params that function takes is ${myFunc.length}`);
    
    if (arguments.length === myFunc.length) {
       console.log(`we have a match`);
    } else {
       console.log(`No match`);
    }
    };
    myFunc(2,3);  // "we have a match"
    
    myFunc(2,3,4,5,6) // "No match"
    

    좋은 웹페이지 즐겨찾기