ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript 関数式で感嘆符は何をするのでしょうか?

JavaScript 関数式で感嘆符は何をするのでしょうか?

DDD
リリース: 2024-12-20 13:03:17
オリジナル
905 人が閲覧しました

What Does the Exclamation Mark Do in JavaScript Function Expressions?

JavaScript 関数式の謎の感嘆符

JavaScript コードの領域で、感嘆符という奇妙な光景に遭遇したことがあるかもしれません。関数宣言の前に置きます。この一見不起眼な記号は、関数の本質そのものを変える重大な意味を持っています。

感嘆符 ! は、関数宣言を関数式に変換します。これは、関数が、変数に割り当てたり、引数として渡したり、別の関数から返すこともできる値として扱われることを意味します。

その意味を理解するには、次のコードを考慮してください。

function foo() {}
ログイン後にコピー

これは標準の関数宣言であり、関数を定義するだけで、関数を呼び出しません。実際に関数を実行するには、次のように呼び出します。

foo()
ログイン後にコピー

次に、感嘆符を導入しましょう:

!function foo() {}();
ログイン後にコピー

この一見無害な追加により、ボール ゲームが変わります。感嘆符は関数宣言を式に変換し、括弧を追加することですぐに呼び出すことができます。括弧の優先順位は感嘆符の優先順位よりも高いため、コードは次のように実行されます。

(function foo() {})()
ログイン後にコピー

これは、本質的に前の例の明示的な呼び出しと同じタスクを実行します。ただし、これには微妙な利点があります。関数式ごとに 1 バイトを節約できるということです。

さらに、感嘆符には別の目的もあります。式が関数の戻り値に基づいてブール値を返すように強制します。ただし、即時に呼び出される関数式 (IIFE) の場合、戻り値は通常未定義であり、式の結果は true になります。このブール値は通常は使用されませんが、それでも感嘆符の存在による興味深い副作用です。

以上がJavaScript 関数式で感嘆符は何をするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート