<>: 3

2469 단어

제3장 함수


1. 함수 인삼의 기본값
function makeRequest(url, timeout = 2000, callback = function() {}) {
}

2.arguments는 비엄격한 모드에서 명칭 매개 변수의 변화가 arguments 대상에 동시에 업데이트되지만, ESMAScript5의 엄격한 모드에서 arguments 대상의 감동적인 의혹을 취소하는 행위
function(first) {
    console.log(first === arguments[0]);    // true  (ESMAScript5 : true)
    first = "c";
    console.log(first === arguments[0]);    // true  (ESMAScript5 : false)
}
 ECMAScript6 ,  ,  , arguments ECMAScript5 

3. 기본 매개변수 표현식
function getValue() {
    return 5;
}
function add(first, second = getValue()) {
}
console.log(add(1, 1));   // 2
console.log(add(1));      // 6

4. 부정확한 매개 변수는 함수의 명명 매개 변수 앞에 세 개의 점을 추가합니다 (...)이것은 부정확한 매개 변수임을 나타낸다. 이 매개 변수는 하나의 수조이다
  • 부정확한 매개 변수의 사용 제한:
  • 모든 함수는 최대 한 개의 부정확한 매개 변수만 설명할 수 있을 뿐만 아니라, 반드시 모든 매개 변수의 끝에 있어야 한다
  • 부정확한 매개 변수는 대상 글꼴 세터에 사용할 수 없습니다

  • 부정확한 파라미터를 사용하든지 말든arguments 대상은 항상 모든 전입 함수의 파라미터를 포함한다
  • function pick(object, ...keys) {
        let result = Object.create(null);
        for(let i = 0, len = keys.length; i < len; i++) {
            result[keys[i]] = object[keys[i]];
        }
        return result;
    }
    

    5. 전개 연산자 전개 연산자는 부정확한 매개 변수와 유사하다(기능이 상반되는 것처럼) 전개 연산자는 지정한 수조를 열어 함수를 독립적으로 전달할 수 있다
     : Math.max() ,  
    +  
    let values = [25, 50, 75, 100];
    console.log(Math.max.apply(Math, values));
    +  
    console.log(Math.max(...values));
    

    6.name 속성은 익명 함수 표현식의 광범위한 사용을 해결하기 위해 디버깅 난이도를 증가시켰고, ES6는name 속성을 증가시켰다
    function doSomething() {}
    var doOther = function() {}
    console.log(doSomething.name);
    console.log(doOther.name);
    

    7. 메타 프로퍼티(Metaproperty) new.target은 new 키워드를 통해 호출되는지 판단하기 위해 ES6에 new를 도입합니다.target (주의점: 함수에서만 사용) 이 메타속성
    function Person(name) {
        if(typeof new.target !== 'undefined') {
            this.name = name;
        }else {
            throw new Error(' new ');
        }
    }
    var p = new Person("Jack");
    var notP = Person.call(p, "Rose");   //  
    

    8. 블록급 함수 블록급 함수와let 함수의 차이:let 함수는 향상되지 않습니다
    "use strict";
    
    if(true) {
        console.log(typeof doSomething);   //  
        let doSomething = function() {}
        doSomething();
    }
    console.log(typeof doSomething);
    

    9. 화살표 함수
  • this,super,arguments,new가 없습니다.target 귀속
  • 새 키워드를 통해 호출할 수 없습니다
  • 원형이 없습니다
  • 좋은 웹페이지 즐겨찾기