ホームページ  >  記事  >  ウェブフロントエンド  >  es6 => どういう意味ですか

es6 => どういう意味ですか

青灯夜游
青灯夜游オリジナル
2022-04-19 17:37:223941ブラウズ

es6 では、「=>」は関数の略語であるアロー関数を指します。構文は (パラメータ)=>{関数本体};" です。アロー関数にはプロトタイプやプロトタイプはありません。 this、arguments、super、および "new.target" はバインドされており、それらの値は周辺にある最も近い非矢印関数によって決定され、new キーワードを介して呼び出すことはできません。

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

es6 => どういう意味ですか

=>

は新しいアロー関数です。 ES6 標準に追加された関数です。名前が示すように、アロー関数は、矢印 (=>) を使用して関数を定義する新しい構文です。アロー関数式の構文は関数式よりも簡潔ですが、従来の関数式とは若干異なりますJavaScript 関数。主に次の側面に焦点を当てています。

this、super、arguments、および new.target のバインディングはなく、その値は、次の最も近い非アロー関数によって決定されます。

  • #新しいキー Word 呼び出しを渡すことができません

  • プロトタイプがありません

  • バインディングこれは変更できません

  • #引数はサポートされていません オブジェクト

  • # は繰り返しの名前付きパラメータをサポートしていません

  • 関数本体内の this のポイントは、それを呼び出すオブジェクトではなく、常にそれが定義されているオブジェクトを指します。es5 で誰が関数を実行するのか、そしてそれが誰を指すのかがわかります。

  • 基本構文

  • (param1, param2, …, paramN) => { statements }
    (param1, param2, …, paramN) => expression
    //相当于:(param1, param2, …, paramN) =>{ return expression; }
    // 当只有一个参数时,圆括号是可选的:
    (singleParam) => { statements }
    singleParam => {statements }
    // 没有参数的函数应该写成一对圆括号:
    () => { statements }

簡単な例

x => x * x

これは次と同等です:

function (x) {
 return x * x;
}
短い関数の例

        var elements = [
            'Hydrogen',
            'Helium',
            'Lithium',
            'Beryllium'
        ];
        
        elements.map(function(element) { 
            return element.length; 
        }); // 返回数组:[8, 6, 7, 9]
        
        // 上面的普通函数可以改写成如下的箭头函数
        elements.map((element) => {
            return element.length;
        }); // [8, 6, 7, 9]
        
        // 当箭头函数只有一个参数时,可以省略参数的圆括号
        elements.map(element => {
        return element.length;
        }); // [8, 6, 7, 9]
        
        // 当箭头函数的函数体只有一个 `return` 语句时,可以省略 `return` 关键字和方法体的花括号
        elements.map(element => element.length); // [8, 6, 7, 9]
        
        // 在这个例子中,因为我们只需要 `length` 属性,所以可以使用参数解构
        // 需要注意的是字符串 `"length"` 是我们想要获得的属性的名称,而 `lengthFooBArX` 则只是个变量名,
        // 可以替换成任意合法的变量名
        elements.map(({ "length": lengthFooBArX }) => lengthFooBArX); // [8, 6, 7, 9]

三項演算子の例

アロー関数では条件付き (三項) 演算子も使用できます。

        var simple = a => a > 15 ? 15 : a;
        simple(16); // 15
        simple(10); // 10

        let max = (a, b) => a > b ? a : b;
Not new とともに使用されます

アロー関数は使用できませんコンストラクターとして new とともに使用されるとエラーがスローされます。

        var Foo = () => {};
        var foo = new Foo(); // TypeError: Foo is not a constructor
プロトタイプ属性がありません

アロー関数にはプロトタイプ属性がありません。

        var Foo = () => {};
        console.log(Foo.prototype); // undefined
関数本体

アロー関数は、「省略された本体」または共通の「ブロック本体」を持つことができます。

##省略された本文では、暗黙的な戻り値を追加した式が 1 つだけ必要です。ブロック本文では、明示的な return ステートメントを使用する必要があります。

        var func = x => x * x;                  
        // 简写函数 省略return(简写体)

        var func = (x, y) => { return x + y; }; 
        //常规编写 明确的返回值(块体)

アロー関数の再帰

<pre class="brush:js;toolbar:false;"> var fact = (x) =&gt; ( x==0 ? 1 : x*fact(x-1) ); fact(5); // 120</pre>

ブラウザの互換性

[関連する推奨事項: JavaScript ビデオ チュートリアル

ウェブ フロントエンドes6 => どういう意味ですか]

以上がes6 => どういう意味ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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