ホームページ ウェブフロントエンド フロントエンドQ&A es6のアロー機能の利点は何ですか?

es6のアロー機能の利点は何ですか?

Mar 07, 2022 pm 05:11 PM
es6 アドバンテージ アロー関数

es6 アロー関数の利点: 1. 適用するのに便利な「parameters => {statements;};」などの簡潔な構文; 2. 暗黙的に返す機能; 3. より直感的な関数ドメインと this のバインド (this はバインドしません)。

es6のアロー機能の利点は何ですか?

このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。

JavaScript で関数を定義する方法はたくさんあることは誰もが知っています。最も一般的なのは、function キーワードを使用することです。

// 函数声明
function sayHi(someone) {
  return `Hello, ${someone}!`;
}
// 函数表达式
const sayHi = function(someone) {
  return `Hello, ${someone}`;
}
ログイン後にコピー

上記の関数宣言と関数式は、正規関数と呼ばれます。

ES6 には新しいアロー関数構文もあります:

const sayHi = (someone) => {
  return `Hello, ${someone}!`;
}
ログイン後にコピー

元の JS の関数と比較して、ES6 で追加されたアロー関数はより簡潔で、適用しやすくなっています。

es6 アロー関数の利点:

1. 簡潔な構文

配列を取得し、出力する前にそれを 2 倍にします。

删掉一个关键字,加上一个胖箭头;
没有参数加括号,一个参数可选择;
多个参数逗号分隔,

const numbers = [5,6,13,0,1,18,23];
//原函数
const double = numbers.map(function (number) {
    return number * 2;
})
console.log(double);
//输出结果
//[ 10, 12, 26, 0, 2, 36, 46 ]
//箭头函数     去掉function, 添加胖箭头
const double2 = numbers.map((number) => {
    return number * 2;
})
console.log(double2);
//输出结果
//[ 10, 12, 26, 0, 2, 36, 46 ]
//若只有一个参数,小括号能够不写(选择)
const double3 = numbers.map(number => {
    return number * 2;
})
console.log(double3);
//如有多个参数,则括号必须写;若没有参数,()须要保留
const double4 = numbers.map((number,index) => {
    return `${index}:${number * 2}`;  //模板字符串
})
console.log(double4);
ログイン後にコピー

2.暗黙的にリターン可能

表示されるリターンはsvg

const double3 = numbers.map(number => {
    return number * 2;  
    //return 返回内容;
})
ログイン後にコピー

アロー関数の暗黙的なリターンはfunction

当你想简单返回一些东西的时候,以下:去掉return和大括号,把返回内容移到一行,较为简洁;
const double3 = numbers.map(number => number * 2);
ログイン後にコピー

補足:アロー関数無名関数を呼び出す必要がある場合は、上記の double3 などの変数に割り当てる必要があります。匿名関数は、関数を再帰したりバインド解除したりするときに便利です。

3. スコープと this のより直観的なバインディング (これはバインドしません)

オブジェクト、最初に関数

## でこれを書きました#オブジェクト、最初は関数でこれを書きました

const Jelly = {
    name:'Jelly',
    hobbies:['Coding','Sleeping','Reading'],
    printHobbies:function () {
        this.hobbies.map(function (hobby) {
            console.log(`${this.name} loves ${hobby}`);
        })
    }
}
Jelly.printHobbies();
// undefined loves Coding
// undefined loves Sleeping
// undefined loves Reading
ログイン後にコピー

これは、this.hobbies のポインティングが正しく、this.name のポインティングが間違っていることを意味します;

独立した関数が存在するとき実行されると、これは window を指します

正しく指したい場合、私たちの本来のアプローチは、spa

//中心代码
printHobbies:function () {
    var self = this; // 设置变量替换
    this.hobbies.map(function (hobby) {
        console.log(`${self.name} loves ${hobby}`);
    })
}
Jelly.printHobbies();
// Jelly loves Coding
// Jelly loves Sleeping
// Jelly loves Reading
在ES6箭头函数中,咱们这样写code
//中心代码
printHobbies:function () {
   this.hobbies.map((hobby)=>{
       console.log(`${this.name} loves ${hobby}`);
   })
}
// Jelly loves Coding
// Jelly loves Sleeping
// Jelly loves Reading
ログイン後にコピー
を置き換える変数を設定することです。これは、これがアロー関数でアクセスされるためです。実際には、親スコープのthisを継承する アロー関数自身のthisは存在しない これは、アロー関数のthisが宣言された時点(字句スコープ)で決まるのと同じである thisの要点は、メソッドが実行されても変わらないと呼ばれた。

【関連する推奨事項:

JavaScript ビデオ チュートリアル Web フロントエンド ]

以上がes6のアロー機能の利点は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

非同期は es6 または es7 用ですか? 非同期は es6 または es7 用ですか? Jan 29, 2023 pm 05:36 PM

非同期はes7です。 async と await は ES7 に新しく追加されたもので、非同期操作のソリューションです。async/await は co モジュールとジェネレーター関数の糖衣構文と言え、より明確なセマンティクスで JS 非同期コードを解決します。名前が示すように、async は「非同期」を意味します。async は関数が非同期であることを宣言するために使用されます。async と await の間には厳密な規則があります。両方を互いに分離することはできず、await は async 関数内でのみ記述できます。

Django フレームワークの長所と短所: 知っておくべきことすべて Django フレームワークの長所と短所: 知っておくべきことすべて Jan 19, 2024 am 09:09 AM

Django は、Web 開発ライフサイクルのあらゆる側面をカバーする完全な開発フレームワークです。現在、このフレームワークは世界中で最も人気のある Web フレームワークの 1 つです。 Django を使用して独自の Web アプリケーションを構築する場合は、Django フレームワークの長所と短所を理解する必要があります。具体的なコード例も含め、知っておくべきことはすべてここにあります。 Django の利点: 1. 迅速な開発 - Django は Web アプリケーションを迅速に開発できます。豊富なライブラリと内部を提供します。

Django、Flask、および FastAPI フレームワークの長所と短所を理解する Django、Flask、および FastAPI フレームワークの長所と短所を理解する Sep 28, 2023 pm 01:19 PM

Django、Flask、および FastAPI フレームワークの長所と短所を理解するには、具体的なコード例が必要です。 はじめに: Web 開発の世界では、適切なフレームワークを選択することが重要です。 Django、Flask、および FastAPI は 3 つの人気のある Python Web フレームワークであり、それぞれに独自の長所と短所があります。この記事では、これら 3 つのフレームワークの長所と短所を詳しく説明し、具体的なコード例を使用してその違いを説明します。 1. Django フレームワーク Django は完全に機能します。

ミニ プログラムで es6 を es5 に変換する必要があるのはなぜですか? ミニ プログラムで es6 を es5 に変換する必要があるのはなぜですか? Nov 21, 2022 pm 06:15 PM

ブラウザの互換性のため。 ES6 は JS の新しい仕様として、多くの新しい構文と API を追加していますが、最新のブラウザーは ES6 の新機能を高度にサポートしていないため、ES6 コードを ES5 コードに変換する必要があります。 WeChat Web 開発者ツールでは、デフォルトで babel が使用され、開発者の ES6 構文コードを 3 つの端末すべてで適切にサポートされる ES5 コードに変換し、開発者がさまざまな環境によって引き起こされる開発上の問題を解決できるようにします。プロジェクト内でのみ設定して確認するだけです。 「ES6~ES5」オプション。

PHP アロー関数を使用して関数のカリー化を実装する方法 PHP アロー関数を使用して関数のカリー化を実装する方法 Sep 13, 2023 am 11:12 AM

PHP アロー関数を使用して関数のカリー化を実装する方法 カリー化 (カリー化) は関数プログラミングの概念であり、複数パラメーターの関数を 1 つのパラメーターのみを受け入れる関数シーケンスに変換するプロセスを指します。 PHP では、アロー関数を使用して関数のカリー化を実装し、コードをより簡潔かつ柔軟にすることができます。いわゆるアロー関数は、PHP7.4 で導入された新しい匿名関数構文です。外部変数を取り込めることと、関数本体となる式が1つしかないことが特徴です。

es5 および es6 で配列重複排除を実装する方法 es5 および es6 で配列重複排除を実装する方法 Jan 16, 2023 pm 05:09 PM

es5 では、for ステートメントと IndexOf() 関数を使用して配列の重複排除を実現できます。構文 "for(i=0;i<配列長;i++){a=newArr.indexOf(arr[i]);if( a== -1){...}}」。 es6 では、スプレッド演算子 Array.from() および Set を使用して重複を削除できます。まず配列を Set オブジェクトに変換して重複を削除してから、スプレッド演算子または Array.from() 関数を使用する必要があります。 Set オブジェクトを配列に変換してグループ化するだけです。

Android ブラウザの推奨 - UC Browser の利点と使用方法の提案 Android ブラウザの推奨 - UC Browser の利点と使用方法の提案 Jan 08, 2024 pm 04:49 PM

ブラウザは誰もが頻繁に使用するソフトウェアです。携帯電話に付属のブラウザに加えて、より便利で自分に合ったブラウザもダウンロードするようになるでしょう。ブラウザを選択するとき、人はそれぞれのメリットを比較して、どれを使用するのが良いかを判断します。今日は UC Browser の利点と、Android システムに便利なおすすめブラウザを紹介します UC Browser Android 版の機能紹介 ほとんどのユーザーは、確かにそのユニークな機能と利点のために UC Browser を使用することを選択します。次に、ブラウザとしてのエディターについて詳しく説明します. 主な機能は Web ページの閲覧です. 小説や記事を影響を受けずに読むことができる読書モードがあります. 3. UC ブラウザーにはネットワーク ディスクが内蔵されています写真、ビデオ、その他のコンテンツをクラウドに保存できる機能 4. Android バージョン u

es6 の一時的なデッドゾーンとは何を意味しますか? es6 の一時的なデッドゾーンとは何を意味しますか? Jan 03, 2023 pm 03:56 PM

es6 では、一時的なデッド ゾーンは構文エラーであり、ブロックを閉じたスコープにする let および const コマンドを指します。コード ブロック内では、let/const コマンドを使用して変数が宣言される前に、変数は使用できず、変数が宣言される前は変数の「デッド ゾーン」に属します。これは構文上「一時デッド ゾーン」と呼ばれます。 ES6 では、一時的なデッド ゾーンや let ステートメントや const ステートメントでは変数のプロモーションが発生しないことを規定しています。これは主に実行時エラーを減らし、変数が宣言される前に使用されて予期しない動作が発生するのを防ぐためです。

See all articles