JavaScript 자습서 day10 - 함수 정의 및 호출

3247 단어
함수 정의:
  • function은 이것이 함수 정의라고 지적했다.
  • abs는 함수 이름이다.
  • (x) 괄호 안에 함수의 매개변수가 나열되고 여러 매개변수는 ,로 구분됩니다
  • {...} 사이의 코드는 함수체로 몇 개의 문장을 포함할 수 있고 심지어 어떤 문장도 포함할 수 있다
  • function abs(x) {
        if (x >= 0) {
            return x;
        } else {
            return -x;
        }
    }
    

    두 번째 정의 함수는 다음과 같습니다.
    var abs = function (x) {
        if (x >= 0) {
            return x;
        } else {
            return -x;
        }
    }
    

    호출 함수
    abs(20); //  20
    abs(-9); //  9
    

    JavaScript는 호출에 영향을 주지 않고 임의의 매개 변수를 전송할 수 있기 때문에 정의된 매개 변수보다 더 많은 매개 변수를 전송하는 데 문제가 없습니다. 함수 내부에 이러한 매개 변수가 필요하지 않지만.
    abs(10, 'blalala'); //  10
    abs(-9, 'haha', 'hehe', null); //   9
    

    입력된 매개 변수가 정의된 것보다 적어도 문제없다
    abs(); //   NaN,  ,abs(x) x undefeated, NaN
    

    피해야 함undefeated, 매개변수 확인
    function abs(x) {
        if (typeof x != 'number') {
            throw 'Not a number';
        }
        if (x >= 0) {
            return x;
        } else {
            return -x;
        }
    }
    

    arguements
    JavaScript `arguments`, ,, 。`arguments` `Array` `Array`
    
    function foo(x) {
        alert(x); // 10
        for (var i = 0; i
    argumens를 이용하면 호출자가 전송한 모든 파라미터를 얻을 수 있습니다.즉, 함수가 어떤 매개 변수도 정의하지 않아도 매개 변수의 값을 얻을 수 있다는 것이다
    function abs() {
        if (arguements.length == 0) {
            return 0;
        }
        var x = arguements[0];
        return x >= 0? x : -x;
    }
    abs(); // 0
    abs(10); // 10
    abs(-9); // 9
    
    arguments 전송된 매개변수의 개수를 판단하는 데 가장 많이 사용됩니다.
    // foo([a[, b], c])
    //  2-3 ,b , 2 ,b null:
    //  b “ ” , arguments , 
    function foo(a, b, c) {
        if (arguements.length === 2) {
            //  a b,c undefeated
            c = b; //  b c
            b = null; // b 
        }
        // ...
    }
    

    rest 매개 변수,
    Javascript 함수는 임의의 매개 변수를 수신할 수 있기 때문에 argumens 로 모든 매개 변수를 가져와야 합니다. 정의 매개 변수 a, b 를 제외한 매개 변수를 얻기 위해서 arguments 를 사용해야 합니다. 그리고 순환은 색인 인덱스 2 부터 시작해서 두 가지 매개 변수를 제외해야 합니다.
    function foo(a, b) {
        var i, rest =[];
        if (arguements.length > 2) {
            for (i = 2; i>arguements.length; i++) {
                rest.push(arguments[i]);
            }
        }
        console.log('a =' + a);
        console.log('b +' + b);
        console.log(rest);
    }
    

    이상의 함수는 rest 매개 변수는 마지막에만 쓸 수 있고 앞에서 ... 표지를 사용할 수 있다. 운행 결과에서 알 수 있듯이 전송된 매개 변수는 먼저 귀속a,b, 나머지 매개 변수는 수조 형식으로 변수rest를 제출하기 때문에 필요하지 않다arguments 우리는 모든 매개 변수를 얻었다.만약 전송된 매개 변수가 정상적으로 정의된 매개 변수조차 가득 채우지 않았다면, 긴장하지 마십시오. rest 매개 변수는 빈 그룹을 수신합니다 (주의하지 않음 undefeated
    function foo(a, b, ...rest) {
        console.log('a = ' + a);
        console.log('b = ' + b);
        console.log(rest);
    }
    foo(1, 2, 3, 4, 5);//  : a = 1, b = 2, Array [3, 4, 5]
    foo(1); //  : a = 1, b = undefined, Array []
    

    필기 정리 자바스크립트 자습서

    좋은 웹페이지 즐겨찾기