자바 스크립트 함수의 인생

javaScritp 기능 (인생)

함수의 지식

  javaScritp의 기능

// 함수 선언에서 정의 된
 함수 fun1 (이름, 나이) { 
    CONSOLE.LOG (이름 + ','+ 나이) 
} 
fun1 ( '에이미', 18이다); // 에이미 18은

 

// 함수 표현식 정의
 VAR의 Fun2에 = 함수 (이름, 나이) { 
    CONSOLE.LOG (이름 + ','+ ; 연령) 
} 
fun1 ( '에이미', 18이다); // 에이미, 18되고

  

  와 자바 스크립트 함수 의 기본 매개 변수

/ * 默认参数* / 
함수 fun1 (이름, 나이 = 17 ) { 
    CONSOLE.LOG (이름 + ','+ 나이); 
} 

fun1 ( '에이미', 18); // 에이미, 18 
fun1 ( '에이미', ''); // 에이미, 
fun1 ( '에이미'); // 에이미, 17 
fun1 ( "에이미", 널 (null) ); // 에이미, 널 (null)

 

  

  함수 매개 변수의 기본값은 일시적 데드 존은 기본 값이 다른 매개 변수가 될 수 없기 때문에 함수 매개 변수 기본값 식, 초기화 매개 변수 값이 할당되지 않은, 있습니다.

함수 Fun2에 (X, Y = 용 X) { 
    CONSOLE.LOG (X, Y); 
} 
Fun2에 ( 1); // 1 

함수 fun3 (X = Y ) { 
    CONSOLE.LOG (X); 
} 
fun3 ();  // 오류 ReferenceError : Y는 정의되지 않은

 

  

  자바 스크립트 함수 가변 파라미터

// 불확실한 파라미터의 수를 나타내는 데 사용 매개 변수 
함수 FUN4 ( ... 값) { 
    CONSOLE.LOG (values.length를) 
} 
FUN4 ( 1, 2).; // 2 
. FUN4 (1, 2, 3 ,. 4 ,. ) // 4

 

  

  구조 정의 함수

기능 생성자 함수에 의해 만들어진, 그것은 인수의 수의 생성자에 전달하지만, 다른 매개 변수는 인수 함수로 전달되는 동안 마지막 매개 변수는, 몸의 함수로 전달됩니다 주목할 가치가있다 할 수있다. 이 두 번 코드를 구문 분석 구문 원인이됩니다 함수를 정의하는 데 사용되는 방법은, 들어오는 두 번째 생성자 문자열이 성능에 영향을 구문 분석 루틴 인 ECMAScript 코드를 파싱 처음 사용하지 않는 것이 좋습니다.

VAR의 FUNCTIONNAME = 새로운 함수 ( "가치", ..., "函数体");
VAR의 F2는 = 새로운 기능 ( "N1", "N2", "복귀 N2 + N1]" ); 
CONSOLE.LOG (F2 ( 1,2)); // 삼

 

참고 : 함수 값 유형을 포함하고, 함수 이름은 함수에 대한 포인터 때만 포인터 만 복사 다른 시간에 할당 된 변수 이름 함수명. null로 세트를 다음 즉, 단지 메모리 포인터를 제거, 그것은 함수 호출 B에 영향을주지 않습니다.

VAR의 A = B = 함수 (값) {
     복귀 VALUE1; 
} = ; 
B ( 1);

 

 

함수 인수 호출 된 기본 객체 배열과 같은,하지만 배열은, 객체는 매개 변수의 함수에 전달됩니다. 우리는이 기능을 사용할 수 있습니다 인수는 얼마나 많은 매개 변수를 알고

펑션 카운터 () {
     VAR의 합 = 0 ;
    위한 ( VAR I = 0; I <가 에서 arguments.length를 , 난 ++ ) { 
            합계 + = 인자 [I]; 
    } 
     리턴 합; 
} 
CONSOLE.LOG (카운터 ( 199,991,1,2,3,4,5)); // 1205 
CONSOLE.LOG (계수 ()); // 0

 

참고 : 여기에 인수 암시 대상, 문이 또한 작동하지 않습니다, 내부 함수는 외부 함수의 콘텐츠에 액세스 할 수 있지만, 직접이 기능을 외부 객체 인수에 액세스 할 수 없습니다.

함수 F1 () { 
    CONSOLE.LOG (에서 arguments.length); 
    F2 = 함수 () { 
        CONSOLE.LOG (에서 arguments.length); 
    } 
     리턴 F2 단계; 
} 

VAR의 F = F1 (1,2,3); // 3 
F (); // 0

 

  

  함수 .call - 객체 메소드 호출은 다른 한 객체는 전류를 대체

/ * 생성자 * / 
함수 학생 (이름, 나이) {
        다음은이 .name을 = 이름;
        은이 .age = 나이; 
} 
           
표시 = 기능 (추가) { 
       을 console.log (추가 + ":"+ 은이 .name을 + "," + 다음은이 ; .age) 
} 
           
// 객체 톰 만드는 생성자 새로운 키워드를 호출하여 
VAR = 로즈 새로운 학생 ( "로즈", 18 인 );
 var에 잭 = 새로운 학생 ( "잭", 20이다 ); 
          
// 호출 표시 방법은, 문맥, 지정된 호출 개체를 지정,이 점은 "안녕하세요, 모두가 매개 변수"장미.call (장미, "모두 안녕"); //안녕하세요 모두들 : 로즈, 18 
표시 .call (잭의 "안녕하세요"); // 헬로 : 잭, 20

 

호출 메서드 매개 변수는 첫 번째 매개 변수는 경우, 방법, 또는이 시점 전화에 객체 대표, 생략 할 수 있습니다 당신이 가리 킵니다 창 개체를 지정하지 마십시오을 .

VAR 이름 = "이름"; 
var에 나이 = 18 ; // 전역 변수 
//; show.call () 정의되지 않은 알 수없는, 18 :

 

 

 즉시 실행 발현 함수 (인생)

블록 레벨 범위 및 기능 영역

 함수 CALC () {
        ( VAR I = 0; I <5; 내가 ++ ) { 
            CONSOLE.LOG (I); //   // 0,1,2,3,4 
      } 
      CONSOLE.LOG (I); // 5 
} 
CALC ();

 

기능 블록 레벨 범위 그래서 전 출력 백 (5)가 제공되지 않습니다

용액, 블록 레벨 범위 시뮬레이션

 

 함수 CALC () {
        // 인생 
       ( 함수 () {
                위해 ( VAR I = 0; I <5; 내가 ++ ) { 
                     CONSOLE.LOG (I) // 0,1,2,3,4 
               } 
        }) () ;       
      CONSOLE.LOG (I); // 报错
} 

CALC ();

 

 

  함수 표현식 또는 익명 개체가 즉시 실행

 

// 익명 함수를 호출 
( 함수 {() 
     (을 console.log을 "이 함수의 표현이다" ); 
 }) (); 

 // 익명 객체를 호출 
({ 
    이름 : "foo는" , 
    쇼 : 함수 () { 
      콘솔. (기록 은이 ; .name을) 
   } 
  }) 쇼 (). 
CONSOLE.LOG을 ({A :
1. } II.A) CONSOLE.LOG ({A : 함수 ().} {A} ());

 

 

 

다양한 기능이 즉시 표현을 썼다

 

// 가장 일반적인 두 가지 쓰기 
( 함수 () { / * 코드 * / } ()); // 권장 문구가 
( 함수 () { / * 코드 * / }) (); // 물론,이있을 수 있습니다 

/ / 브래킷 JS 일부 운영자 (예컨대 = && || 등) 함수식 및 함수 선언을 명확화 할 수 
// 다음 코드 파서 이미 알려진 표현이기 때문에 다른 것 표현의 기본 
// 하지만 모두 받게됩니다 교환 
var에 나는 = 함수 () { 반환 (10) ;} ();
 true로 && 기능 () { / * 코드 * / } ();
 0, 기능 () {/ * 코드 * / } (); 

// 만약 당신이 두려워 코드 모호한, 단항 연산자를 선택할 수있다 읽기가 어렵습니다 
! 기능 () { / * 코드 * / } ();
 ~ 기능 () { / * 코드 * / } ();
 - 기능 () { / * 코드 * / } ();
 + 기능 () { / * 코드 * / } (); 

// 당신이 할 수 있도록 
새로운 새로운  기능 () { / * 코드 * / }
 새로운 새로운  기능 () { / * 부호 * /} () // 매개 변수

 

 

 

파라미터 즉시 발현 함수

( 함수 (N) { 
      CONSOLE.LOG (N); // 100 
}) (100);

 

식 바람직 함수 세미콜론 첨가 직전

 VAR의 K = 100 
( 함수 (N-) { 
      CONSOLE.LOG (N-)] 
}) (K); 
// 에러, 인터프리터 (100)는 그 함수
했다 K = 100 
(; 함수 (N) { 
         CONSOLE.LOG (N)] 
}) (K);

 

  

  인생의 변형

( 기능 (N-) { 
     하며 CONSOLE.LOG는 (N-) 
            
     // 이 코드 30000 생각 
            
(} ) 100);

 

긴 코드의 중간, 100 만 수정 후 볼 수있는 문서의 끝이 매개 변수를 결과하는 경우 :

( 기능 (특급) { 
       EXP ( 100 ); 
} ( 기능 (N-) { 
       을 console.log (N-); 
       // 이 코드 30000을 생각 
}));

 

추천

출처www.cnblogs.com/yangWanSheng/p/11708562.html