>  기사  >  웹 프론트엔드  >  JavaScript 함수 정의_javascript 기술에 대한 상세한 분석

JavaScript 함수 정의_javascript 기술에 대한 상세한 분석

WBOY
WBOY원래의
2016-05-16 15:50:041013검색

기능

몇 가지 핵심 사항:

a) 함수는 JavaScript에서 일급 시민입니다(중요)
~ ~                                 . c) 이 함수는 독립 변수 범위
를 정의합니다.

정의 방법

a) 명명된 함수:

이름이 지정된 함수는 다른 함수 내부에 정의되지 않는 한 전역 함수입니다.

      // 全局的命名函数
  function add(x, y) {
    return x + y;
  }
  console.info(add(100, 200));  //300

b) 익명 기능:

익명 함수는 일반적으로 변수에 할당된 후 해당 변수를 통해 호출됩니다.

    var func = function (x, y) {
      return x + y;
    }
    console.info(func(5, 2)); //7
익명 함수는 "즉시 실행되는 익명 함수"의 다음과 같은 상황에 적합합니다.

    console.info(
      function (x, y) {
            return x + y;
          }(100, 200)  //立即调用
        );
다) 정의 방법이 코드 실행 효과에 영향을 준다

이름이 지정된 함수를 먼저 사용한 후 정의할 수 있습니다

    console.info(sum(10, 10));
    function sum(num1, num2) {
      return num1 + num2;
    }

을 사용하기 전에 먼저 익명 함수를 정의해야 합니다.

    //console.info(sumFunc(10, 10));  //Uncaught TypeError: Property 'sumFunc' of object [object Object] is not a function 
    var sumFunc = function (num1, num2) {
      return num1 + num2;
    };
    console.info(sumFunc(10, 10));


함수 반환 값:

return을 사용하여 반환 값을 생성합니다. 반환이 없으면 함수는 정의되지 않은 값을 반환합니다.

 function func() {
 }
 console.info(func()); //undefined
 function func2() {
   return; //空的返回语句
 }
 console.info(func2()); //undefined

귀환에 숨겨진 구덩이:

 var func = function (x, y) {
   var sum = x + y;
   return {
     value : sum
   }
 }

다음과 같이 작성하는 데에는 문제가 없습니다. func(5,5)를 호출하면 Object {value: 10}이 반환됩니다.

단,

  var func = function (x, y) {
    var sum = x + y;
    return
    {
      value: sum
    };
  }
  console.info(func(5,5)); //undefined

return 다음에 캐리지 리턴과 행 변경이 오는 경우

func(5,5)를 호출하면 정의되지 않은 것으로 표시됩니다
편집자는 반환 뒤에 세미콜론을 추가했지만 이 경우에는 쓸모가 없습니다.

함수는 객체입니다:

  function add(x, y) {
    return x + y;
  }
  console.info(add(100, 200)); //300
  var other = add; //other和add引用同一函数对象
  console.info(other(300, 400)); //700
  console.info(typeof other);  //function
  console.info(add === other); //true

중첩된 정의 함수:

함수 내에서 다른 함수를 정의할 수 있습니다.

  function outerFunc(a, b) {
    function innerFunc(x) {
      return x * x;
    }
    return Math.sqrt(innerFunc(a) + innerFunc(b));
  }
  console.info(outerFunc(3, 4)); //5

외부 변수 액세스:

내부 함수는 외부 변수와 매개변수에 접근할 수 있습니다.

 var globalStr = 'globalStr';
 function outerFunc2(argu) {
   var localVar = 100;
   function innerFunc2() {
     localVar++;
     console.info(argu + ":" + localVar + ":" + globalStr);
   }
   innerFunc2(); //hello:101:globalStr
 }
 outerFunc2("hello");

함수를 반환하는 함수:

함수는 객체이므로 반환값으로 사용할 수 있습니다.

  function outerFunc(x) {
    var y = 100;
    return function innerFunc() {
      console.info(x + y);
    }
  }
  outerFunc(10)(); //110
위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.