AMTag:[JavaScript]ソーシャルボタンのJavaScriptでfunctionの前に「!」がついている理由を調べてみました。1.はじめにTwitterやPocketなどのソーシャルボタンのコードをみると、共通してscript要素の中にあるfunctionの前に「!(エクスクラメーション)」がついています。w=d.getElementById(i);d.body.appendChild(j);}}(document,"pocket-btn-js");</script>以前「jQueryプラグインの先頭にセミコロンがある理由」をエントリーしていたので、当初これと同じような理由かと思っていたら全然違っていました。いうことでfunctionの前に「!」がついている理由を紹介します。結論から言うと「!」はJavaScriptの即時関数を意味します。})();という形式なのですが、function全体を括っているカッコの代わりにJavaScriptの単項演算子「+」「-」「!」「void」「typeof」を使うこともできるようです。単項演算子を利用すると、後方の閉じカッコを省略できるらしいです。}();に書き直せるということになります。サンプルを作って確認したところすべて動作しました。最近のソーシャルボタンのJavaScriptではこの中の「!」をお作法として使っているようです。ちなみに「!」を用いると、返却値がbool型にキャストされるとのことです。3.参考サイト参考サイトは以下です。ありがとうございました。*必須(非表示)URL(U):情報を保存する?コメントへの返信ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。すべてのご質問にはお答えできない可能性があります。Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。