【Javascript学習ノート】【ES 6:関数の拡張】


目次
  • ディレクトリ
  • 関数パラメータのデフォルト値
  • は、デフォルト値の解釈と組み合わせて使用されます.
  • デフォルトの位置
  • 関数のlength属性
  • 作用域
  • ショートカットリンク
  • 関数パラメータのデフォルト値
    パラメータ定義の後に直接書きます.このパラメータがない場合はデフォルト値が使用されます.
    function log(x, y = 'World') {
      console.log(x, y);
    }
    
    log('Hello') // Hello World
    log('Hello', 'China') // Hello China
    log('Hello', '') // Hello
    function Point(x = 0, y = 0) {
      this.x = x;//          x
      this.y = y;
    }
    
    const p = new Point();
    p // { x: 0, y: 0 }

    注意!let、constでパラメータを宣言してはいけません.そうしないと、エラーが発生します.
    デフォルト値の解釈と組み合わせて使用
    function foo({x, y = 5}) { console.log(x, y); } foo({}) // undefined 5 foo({x: 1}) // 1 5 foo() // TypeError: Cannot read property 'x' of undefined

    関数パラメータのデフォルト値は使用されません.注意!関数fooのパラメータがオブジェクトである場合にのみ、変数xとyは解構賦値によって生成されるため、foo()にはパラメータがなく、エラーが発生する.解決策は以下の通りである( ).
    function foo({x, y = 5} = {}) {
      console.log(x, y);
    }
    
    foo() // undefined 5
    はundefined(すなわち、パラメータがない)に渡され、パラメータがデフォルト値に等しいことがトリガーされ、nullは(空のパラメータがある)のでデフォルト値に等しくありません.
    デフォルトの場所はいずれも末尾パラメータに設定されている.理由:1.見やすい2.このパラメータが省略できることを保証します.そうしないと、その後のパラメータはデフォルトのパラメータで、省略できます.
    関数のlengthプロパティ
    js関数のlengthプロパティは、パラメータの数を返します.しかし、デフォルト値を指定すると、lengthプロパティはデフォルト値が指定されていないパラメータの数だけを返します.!!デフォルト値がテールパラメータでない場合、lengthプロパティも後のパラメータに計上されません.
    アクティブドメイン
    関数を宣言して初期化すると、パラメータは個別の役割ドメインを形成します.初期化が終わると、この役割ドメインは消えます.例:ここでのパラメータyは、グローバルxではなくパラメータXからの値を得る
    var x = 1;
    
    function f(x, y = x) {
      console.log(y);
    }
    
    f(2) // 2
    var x = 1;
    
    function foo(x = x) {
      // ...
    }
    
    foo() // ReferenceError: x is not defined

    ショートカットリンク
    すべてのReact学習ノートのディレクトリClick Here>>すべてのJavascript学習ノートのディレクトリClick Here>>Less学習ノートClick Here>>安利一波フロントエンド開発推奨ツールClick Here>>ESLint問題記録Click Here>>github各種実戦練習ソースダウンロードClick Here>>私のものがあなたを助けることができると思ったら、无限へようこそgithubライブラリコレクションStar~0 v 0~