ホームページ ウェブフロントエンド jsチュートリアル js の apply 関数と Math.max() 関数の概要

js の apply 関数と Math.max() 関数の概要

Mar 28, 2018 am 09:05 AM
apply javascript

この記事では、主に js の apply 関数と Math.max() 関数の問題について紹介します。記事の最後で、js の Math.max.apply と Math.max の違いについて説明しました。お役に立てば幸いです。あなた。

var arr=[1,3,6,3,7,9,2];
console.log(Math.max.apply(null,arr));
ログイン後にコピー

なぜこれで配列の最大値を計算できるのかまだわかりません。まだ理解できません。jsの専門家からアドバイスをお願いします。

回答 1

Function.apply() は JS の OOP 機能であり、上記のコードの場合、次のように理解できます。関数を呼び出すメソッドです。パラメータは次のとおりです: apply(Function, Args)、

Function は呼び出されるメソッド、Args はパラメータ リスト、Function が null の場合、デフォルトは上記です、

つまり、

Math.max.apply(null, arr)
ログイン後にコピー

が考えられます

apply(Math.max, arr)
ログイン後にコピー

そして、arrはmaxメソッドのパラメータリストであり、パラメータはいくつかの数値です、つまり

Math.max(a, b, c, d, ...)
ログイン後にコピー
ログイン後にコピー

applyを使用するときは、すべてのパラメータを配列に追加します、つまり

arr = [a, b, c, d, ...]
ログイン後にコピー
です。

は元の式に代入され、

Math.max.apply(null, [a, b, c, d, ...])
ログイン後にコピー

は実際には

Math.max(a, b, c, d, ...)
ログイン後にコピー
ログイン後にコピー

と同等です。 ここで、apply を使用する利点は、一部の JS エンジンでのパフォーマンスが向上することです。

回答 2 Math.max() メソッドは、次のような複数のパラメーターの受け渡しをサポートしています。 Math.max(1,4,2,3,7,5 , 6)

ただし、次のような配列をパラメーターとして直接渡すことはサポートされていません: Math.max(new Array(1,4,2,3,7,5,6))< /コード>。 <code>Math.max()方法,支持传递多个参数,比如:Math.max(1,4,2,3,7,5,6)

但是它不支持直接传递一个数组作为参数,比如:Math.max(new Array(1,4,2,3,7,5,6))

ここでは、配列を一つずつ分割してMath.max()メソッドに渡す方法さえあれば、配列を渡すメソッドが実装されています。

すべての関数には apply (スコープ チェーン、パラメーター) メソッドがあり、この関数の「パラメーター」は配列を受け取り、配列内の各値が分離されて呼び出し元に渡されます。

JavaScriptのMath.max.applyとMath.maxの違い

JavaScriptのMath.maxメソッドは、指定されたパラメータの中で最大の数値を見つけることができます。

&gt; Math.max(&#39;1&#39;,&#39;2&#39;,&#39;3.1&#39;,&#39;3.2&#39;)
&lt; 3.2
&gt; Math.min(1,0,-1)
&lt; -1
ログイン後にコピー
しかし、配列の場合はこのように呼び出すことはできません。

この時点で apply メソッドが使用されます:

apply 方法 (Function) (JavaScript)
调用函数,并用指定对象替换函数的 this 值,同时用指定数组替换函数的参数。
apply([thisObj[,argArray]])
thisObj
  可选。 要用作 this 对象的对象。
argArray
ログイン後にコピー
オプション。 関数に渡される引数のセット。 巧みに配列を Math.max および Math.min に呼び出せるようにします。

&gt; Math.max.apply(null, [&#39;1&#39;,&#39;2&#39;,&#39;3.1&#39;,&#39;3.2&#39;])
&lt; 3.2
&gt; Math.min.apply(null, [1,0,-1])
&lt; -1
ログイン後にコピー

関連する推奨事項:

JavaScript を呼び出して適用する

以上がjs の apply 関数と Math.max() 関数の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 Dec 17, 2023 am 09:39 AM

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築

JavaScript で HTTP ステータス コードを簡単に取得する方法 JavaScript で HTTP ステータス コードを簡単に取得する方法 Jan 05, 2024 pm 01:37 PM

JavaScript で HTTP ステータス コードを簡単に取得する方法

JavaScriptでinsertBeforeを使用する方法 JavaScriptでinsertBeforeを使用する方法 Nov 24, 2023 am 11:56 AM

JavaScriptでinsertBeforeを使用する方法

See all articles