検索
ホームページウェブフロントエンドjsチュートリアルJavaScript の名前付きアロー関数と匿名アロー関数の重要な違い (推奨)

名前付き関数とは、明示的に名前を与える関数、function abs(x){} を指します。匿名関数とは、function(){} のように、キーワード function のみを持ち、abs のような関数名を持たない関数を指します。 ES6 標準では、新しい関数であるアロー関数が追加されています。アロー関数は、表面的には匿名関数と同等であり、関数定義を簡素化します。それらの違いは何ですか?

1 名前付き関数と匿名関数の違い

違い: 匿名関数は別の変数 let a にアドレスを割り当ててから、 a を使用して関数を呼び出す必要がありますが、名前付き関数は関数名を明示的に指定するため、直接呼び出すことができます。この関数名で呼び出します。

名前付き関数の戻り値は、関数本体の戻り値です。たとえば、abs(x) 関数の戻り値は数値変数です。関数を呼び出すときは、abs(6) を直接呼び出します。これは非常に理解しやすいです。

function abs(x){
 if(x>=0){
  return x;
 }else{
  return -x;
 }
}

しかし、匿名関数についてはどうでしょうか?以下に示すように、この関数は明示的に関数名を与えていませんが、ここでの abs にはこの無名関数のアドレスが割り当てられているため、使用時に abs(-3) を直接使用することができます。

let abs=function(x){
 if(x>=0){
  return x;
 }else{
  return -x;
 }
}

2 アロー関数

ES6 標準には、アロー関数という新しい関数が追加されています。なぜアロー関数と呼ばれるのでしょうか?その定義には矢印が使用されているためです。アロー関数は表面的には無名関数と同等であり、関数定義を簡素化します。

アロー関数には 2 つの形式があります。1 つは式を 1 つだけ含むもので、{...} と return も省略されます。

x => x * x

上記のアロー関数は、匿名関数 "" と同等です。

function (x) {
 return x * x;
}

この場合、{...} と return は省略できません:

(x,y) => {
 if (x > 0) {
  return x + y;
 }
 else {
  return -x + y;
 }
}

3 アロー関数と無名関数の違い

アロー関数は無名関数の略称のように見えますが、実はアロー関数と無名関数には明確な違いがあります。アロー関数の中にはこうあります。語彙範囲は文脈によって決まります。

関数 obj1.getAge(2017) を呼び出した場合と obj2.getAge(2017) を呼び出した場合は同じ結果が得られますか?

obj1 の fn 関数は、JavaScript 関数によるこのバインディングの誤った処理により、期待された結果を取得できません。

しかし、obj2 関数と fn 関数はアロー関数です。アロー関数は、常に外部呼び出し元 obj2 である字句スコープを指します。

var obj1 = {
 birth: 1990,
 getAge: function (year) {
  let fn=function(y){
   return y - this.birth; // this指向window或undefined
  };
  return fn(year);
 }
};
var obj2 = {
 birth: 1990,
 getAge: function (year) {
  var fn = (y) => y - this.birth; // this.birth为1990
  return fn(year);
 }
};

4 要約

名前付き関数と比較して、匿名関数は、別の変数 let a にアドレスを割り当ててから、 a を使用して関数を呼び出す必要がありますが、アロー関数はこれを完全に修復します。 、これは常に字句スコープを指します。

上記は、エディターによって紹介された Javascript の名前付き矢印関数と匿名矢印関数の重要な違いです。ご質問があれば、メッセージを残してください。編集者がすぐに返信します。 !

JavaScript の名前付きアロー関数と匿名アロー関数のさらに重要な違いについては (推奨)、PHP 中国語 Web サイトに注目してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Python vs. JavaScript:開発環境とツールPython vs. JavaScript:開発環境とツールApr 26, 2025 am 12:09 AM

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

JavaScriptはCで書かれていますか?証拠を調べるJavaScriptはCで書かれていますか?証拠を調べるApr 25, 2025 am 12:15 AM

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。

JavaScriptの役割:WebをインタラクティブでダイナミックにするJavaScriptの役割:WebをインタラクティブでダイナミックにするApr 24, 2025 am 12:12 AM

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScript:接続が説明しましたCおよびJavaScript:接続が説明しましたApr 23, 2025 am 12:07 AM

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

Webサイトからアプリまで:JavaScriptの多様なアプリケーションWebサイトからアプリまで:JavaScriptの多様なアプリケーションApr 22, 2025 am 12:02 AM

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Python vs. JavaScript:ユースケースとアプリケーションと比較されますPython vs. JavaScript:ユースケースとアプリケーションと比較されますApr 21, 2025 am 12:01 AM

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

JavaScript通訳者とコンパイラにおけるC/Cの役割JavaScript通訳者とコンパイラにおけるC/Cの役割Apr 20, 2025 am 12:01 AM

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

JavaScript in Action:実際の例とプロジェクトJavaScript in Action:実際の例とプロジェクトApr 19, 2025 am 12:13 AM

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

See all articles

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール