ホームページ ウェブフロントエンド jsチュートリアル ECMAScript6 関数のデフォルトパラメータ_JavaScript のヒント

ECMAScript6 関数のデフォルトパラメータ_JavaScript のヒント

May 16, 2016 pm 03:55 PM
デフォルトパラメータ

言語の更新中に追加されるすべての新機能は、何百万もの開発者のニーズから抽出されたものであり、標準採用によりプログラマーの負担が軽減され、利便性がもたらされます。

私たちはよくこのように書きます

1

2

3

4

5

6

function calc(x, y) {

  x = x || 0;

  y = y || 0;

  // to do with x, y

  // return x/y

}

ログイン後にコピー

簡単に言うと、x と y はデフォルト値 0 を提供します。渡されない場合、x と y は値 0 で計算されます。合格すると、実際の値が計算に使用されます。

別の例は、ajax の定義です

1

2

3

4

5

function ajax(url, async, dataType) {

  async = async !== false

  dataType = dataType || 'JSON'

  // ...

}

ログイン後にコピー

ネイティブ JS でカプセル化された単純な ajax 関数。URL は必須ですが、async と dataType が入力されていない場合、デフォルトでは JSON 形式のデータを同期的にリクエストして返します。

もう 1 つの例は、長方形クラスの定義です

1

2

3

4

function Rectangle(width, height) {

  this.width = width || 200;

  this.height = height || 300;

}

ログイン後にコピー

新規作成時にパラメータを渡さないと、デフォルトの幅と高さ 200*300 の四角形が作成されます。

calc、ajax 関数、Rectangle クラスのいずれであっても、関数本体でデフォルト値を処理する必要があります。言語がそれを独自に処理できれば便利だと思いませんか。 ES6 はこの機能 (デフォルト パラメーター) を提供します。以下は、ES6 の新機能で書き直された calc、ajax、および Rectangle です。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

function calc(x=0, y=0) {

  // ...

  console.log(x, y)

}

calc(); // 0 0

calc(1, 4); // 1 4

  

function ajax(url, async=true, dataType="JSON") {

  // ...

  console.log(url, async, dataType)

}

ajax('../user.action'); // ../user.action true JSON

ajax('../user.action', false); // ../user.action false JSON

ajax('../user.action', false, 'XML'); // ../user.action false XML

  

function Rectangle(width=200, height=300) {

  this.width = width;

  this.height = height;

}

var r1 = new Rectangle(); // 200*300的矩形

var r2 = new Rectangle(100); // 100*300的矩形

var r3 = new Rectangle(100, 500); // 100*500矩形

ログイン後にコピー

ご覧のとおり、ES6 ではデフォルト値の部分が中括弧から括弧に移動され、「||」演算も削減され、関数本体がスリム化されました。パラメータのデフォルト値は、パラメータが定義されている場所に置く必要があります。これは非常に単純に見えます。 O(∩_∩)O

デフォルトのパラメータは、中央に

を定義するなど、任意の位置で定義できます。

1

2

3

4

function ajax(url, async=true, success) {

  // ...

  console.log(url, async, success)

}

ログイン後にコピー

はデフォルトのパラメータ async を定義し、url と success が必要です。この場合、中間のパラメータを unknown

に設定する必要があります。

1

2

3

ajax('../user.action', undefined, function() {

    

})

ログイン後にコピー

注意してください。これを当然のことと考えず、undefined を null に変更しないでください。null == unknown であっても、null を渡した後は、関数本体の async は true ではなく null になります。

次の点に注意する必要があります:

1. デフォルトパラメータを定義した後、関数の長さ属性が削減されます。つまり、いくつかのデフォルトパラメータは長さの計算に含まれません。

1

2

3

4

5

6

7

8

9

10

function calc(x=0, y=0) {

  // ...

  console.log(x, y)

}

function ajax(url, async=true, dataType="JSON") {

  // ...

  console.log(url, async, dataType)

}

console.log(calc.length); // 0

console.log(ajax.length); // 1

ログイン後にコピー

2. Let と const を使用してデフォルト値を再度宣言することはできません。var は

にすることができます。

1

2

3

4

5

function ajax(url="../user.action", async=true, success) {

  var url = ''; // 允许

  let async = 3; // 报错

  const success = function(){}; // 报错

}

ログイン後にコピー

もう 1 つの興味深い点は、デフォルトのパラメータは値型であってはならず、関数呼び出しである可能性があるということです

1

2

3

4

5

6

7

8

9

10

function getCallback() {

  return function() {

    // return code

  }

}

  

function ajax(url, async, success=getCallback()) {

  // ...

  console.log(url, async, success)

}

ログイン後にコピー

ここでパラメータ success が関数呼び出しであることがわかります。ajax を呼び出すときに 3 番目のパラメータが渡されない場合、getCallback 関数が実行され、success に割り当てられた新しい関数が返されます。これは、プログラマーに想像力の余地を与える非常に強力な機能です。

たとえば、この機能を使用して特定のパラメータを強制的に渡すことができます。そうでないとエラーが報告されます

1

2

3

4

5

6

7

8

function throwIf() {

  throw new Error('少传了参数');

}

  

function ajax(url=throwIf(), async=true, success) {

  return url;

}

ajax(); // Error: 少传了参数

ログイン後にコピー

以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C++ 関数宣言のデフォルト パラメーター: それらの宣言と使用法の包括的な分析 C++ 関数宣言のデフォルト パラメーター: それらの宣言と使用法の包括的な分析 May 02, 2024 pm 03:09 PM

C++ のデフォルト パラメーターは、関数パラメーターのデフォルト値を指定する機能を提供するため、コードの読みやすさ、単純さ、柔軟性が向上します。デフォルトのパラメータを宣言する: 関数宣言のパラメータの後に「=」記号を追加し、その後にデフォルト値を追加します。使用法: 関数が呼び出されるとき、オプションのパラメーターが指定されていない場合は、デフォルト値が使用されます。実際のケース: 2 つの数値の合計を計算する関数。1 つのパラメーターは必須で、もう 1 つはオプションであり、デフォルト値は 0 です。利点: 可読性の向上、柔軟性の向上、定型コードの削減。注: これは宣言でのみ指定でき、最後に指定する必要があり、型に互換性がある必要があります。

C++ 関数でのデフォルト パラメーターと可変引数パラメーターの使用を最適化する方法 C++ 関数でのデフォルト パラメーターと可変引数パラメーターの使用を最適化する方法 Apr 20, 2024 am 09:03 AM

C++ のデフォルトおよび可変パラメータ関数を最適化します。 デフォルト パラメータ: 関数がデフォルト値を使用できるようにして、冗長性を削減します。読みやすさを向上させるために、デフォルトのパラメータを最後に置きます。 constexpr のデフォルト パラメータを使用してオーバーヘッドを削減します。構造化バインディングを使用して、複雑なデフォルトパラメータの可読性を向上させます。可変パラメータ: 関数が可変数のパラメータを受け入れることができるようにします。可変引数の使用は避け、必要な場合にのみ使用してください。 std::initializer_list を使用して可変個引数関数を最適化し、パフォーマンスを向上させます。

C++ のデフォルトパラメータの使用法と利点 C++ のデフォルトパラメータの使用法と利点 Apr 18, 2024 pm 09:33 PM

はい、C++ のデフォルト パラメーター機能を使用すると、関数が呼び出されるときに特定のパラメーターを省略でき、これらのパラメーターが指定されていない場合は、デフォルト値が使用されるため、柔軟性、可読性、保守性が向上します。コードの。

C++ 関数のデフォルトパラメータに関する注意事項 C++ 関数のデフォルトパラメータに関する注意事項 Apr 20, 2024 am 11:09 AM

C++ 関数のデフォルト パラメーターはパラメーター リストの最後に指定する必要があることに注意してください。同じパラメータに複数のデフォルト値を指定することはできません。 vararg 変数のパラメータ数にはデフォルト値を設定できません。デフォルトのパラメーターは、オーバーロードされた関数のパラメーターと共有できません。

C++関数のデフォルトパラメータを使用するにはどうすればよいですか? C++関数のデフォルトパラメータを使用するにはどうすればよいですか? Apr 19, 2024 pm 03:21 PM

デフォルト パラメーターを使用すると、関数を呼び出すときにデフォルト値を指定できるため、コードが簡素化され、保守性が向上します。デフォルトパラメータの構文は、typefunction_name(parameter_list,typeparameter_name=default_value) です。このうち、type はパラメータの型、parameter_name はパラメータ名、default_value はデフォルト値です。この例では、add 関数には 2 つのパラメーターがあり、そのうち num2 のデフォルト値は 0 です。関数を呼び出すときは、num1 のみを指定して num2 がデフォルト値を使用するか、num1 と num2 の両方を指定できます。

PHP デフォルトパラメータの魔法の使い方: コード効率を向上させる秘訣 PHP デフォルトパラメータの魔法の使い方: コード効率を向上させる秘訣 Mar 24, 2024 am 10:33 AM

PHP は、動的な Web ページやアプリケーションを開発するために広く使用されているサーバー側スクリプト言語です。 PHP では、デフォルトのパラメーターを使用すると、コードの効率と単純さが大幅に向上します。この記事では、PHP のデフォルトのパラメーター関数を利用して、より効率的なプログラミングを実現する方法を検討します。 1. デフォルトパラメータの概念 PHP 関数では、パラメータにデフォルト値を設定できます。パラメーター値を指定せずに関数が呼び出された場合は、代わりにデフォルト値が使用されます。そうすることで、関数呼び出しが簡素化され、冗長なコードが削減され、可読性が向上します。 2.デフォルトパラメータ

PHP 関数のパラメーター受け渡しメソッドは、オプションのパラメーターとデフォルトのパラメーターをどのように処理しますか? PHP 関数のパラメーター受け渡しメソッドは、オプションのパラメーターとデフォルトのパラメーターをどのように処理しますか? Apr 15, 2024 pm 09:51 PM

パラメーターの受け渡し方法: 値による受け渡し (基本型) と参照による受け渡し (複合型)。オプションのパラメーター: パラメーター値を指定できますが、必須ではありません。デフォルトパラメータ: オプションのパラメータのデフォルト値を指定できます。実践的な戦闘: サンプル関数を通じて、オプションおよびデフォルトのパラメーターを使用して長方形の面積を計算する方法を示します。

C++関数のデフォルトパラメータの使用シナリオの分析 C++関数のデフォルトパラメータの使用シナリオの分析 Apr 19, 2024 pm 06:12 PM

デフォルトのパラメーターは、関数呼び出しを簡素化し、オプションの機能を提供し、コードの可読性を向上させるために使用されます。具体的なシナリオとしては、1. 一般的でないパラメータを省略する、2. オプションの関数にデフォルト値を指定する、3. コードを理解しやすくするためにデフォルト値を明示的に指定する、などがあります。

See all articles