8

私は、EcmaScript 2017 に簡単に移行できると想定して ES6 を試していました。

途中で、このコードについて混乱しました

function f (x, y = 7, z = 42) {
    return x + y + z
}
f(1) === 50

ES5に相当するもの

function f (x, y, z) {
    if (y === undefined)
        y = 7;
    if (z === undefined)
        z = 42;
    return x + y + z;
};
f(1) === 50;

そこからデフォルトのパラメーターのことを理解しました。

しかしf(1)===50、両方のコードの意味は何ですか? それの使用は何ですか?

ここに別の例があります

function f (x, y, ...a) {
    return (x + y) * a.length
}
f(1, 2, "hello", true, 7) === 9

とはf(1, 2, "hello", true, 7) === 9どういう意味ですか?

===値だけでなく、両方のタイプを含む演算子の LHS と RHS を比較することを理解しています。

しかし、なぜそれがそのように使用されたのですか??

その使用法を親切に説明してください。

これは私がこれを入手したリンクです。http://es6-features.org/#RestParameter

4

5 に答える 5

2

私によると、あなたはほとんど正しい方法でそれを受け取りました。

その関数呼び出しを 3 つの等号と共にif条件に入れるだけです。

if ( f(1) === 50 ){
    console.log(true);
}
else {
    console.log(false);
}

それでおしまい。

トリプル equal to は単なる比較演算子です。そして、トリプル equal to 演算子の片側の関数呼び出しは、その関数から返される値を意味します。

comparison operatorしたがって、javascript では他のものとして扱います。

あなたの質問を誤解している場合は、訂正してください。

ではごきげんよう!

于 2016-12-31T09:01:36.310 に答える
2

ここでのポイントは、そのサンプル コードです。それらは、それらの引数で呼び出されたときの関数の結果が何かに等しいことを示しています。コンソールに貼り付けない限り、式自体は何もしません。

コメントを使用するのと同じくらい簡単にできたはずです。

f(1, 2, "hello", true, 7) // 9
于 2016-12-30T09:03:30.163 に答える