ホームページ  >  記事  >  ウェブフロントエンド  >  JS の自己実行関数を記述するいくつかの異なる方法の比較_JavaScript スキル

JS の自己実行関数を記述するいくつかの異なる方法の比較_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 17:50:441156ブラウズ

多くの場合、関数自体を実行する必要がありますが、残念ながらこの書き方は間違っています:

コードをコピー コードは次のとおりです。

function(){alert(1);}();

その理由は、「function(){alert(1)」の前半部分です。 );}" は関数式ではなく関数宣言とみなされ、後続の "();" が孤立して構文エラーが発生します。

上記の分析によると、このコードには文法上のエラーはありませんが、この関数自体は実行されないため、期待を満たしていません。
コードをコピー コードは次のとおりです。

function(){alert(1); }(1 );

まとめると、重要なのは、コードが関数宣言ステートメントではなく関数式を記述していることを明確にする方法です。
正しい書き方は数多くあり、それぞれに長所と短所があります。

方法 1: 最初と最後に括弧を追加します。

コードをコピー コードは次のとおりです:

(function(){alert(1);}()); >これは jslint が推奨する書き方です。利点は、コードを読む人にこのコードが全体であることを思い出させることです。
たとえば、構文強調表示マッチング機能を備えたエディターでは、カーソルが最初の左括弧の後ろにあると、最後の右括弧も強調表示され、コードを見ている人は一目で全体を確認できます。
ただし、コードを書くときに行の後にセミコロンを追加することを好まない一部の学生にとっては、いくつかの落とし穴もあります。たとえば、次のコードは実行エラーを報告します:



コードをコピー コードは次のとおりです: var a=1
(function(){alert(1);} ());



方法 2: 関数の前後に括弧を追加します




コードをコピーします コードは次のとおりです: (function(){alert(1);})();

このアプローチではコードの整合性が 1 つ少なくなります。方法 1 よりもメリットがあります。
方法 3: 関数の前に演算子を追加します。一般的なものは ! と void です。



コードをコピー コードは次のとおりです: !function(){alert(1) ;}( );
void function(){alert(2);}();



明らかに、「!」や「」などの演算子を追加するのが最も簡単です。を書きます。
「void」を追加するには 5 回のキー入力が必要ですが、「!」を追加するよりも論理演算が 1 つ少ないという利点があると聞きました。 ----今聞いたんですが、理由が分かりません。

最後に、私個人を代表して、私は方法 1 を強く支持します。これは、jslint の推奨記述方法です。



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