Serviceを読んで理解し、同意したものとみなします。359件22以下のJavaScriptの関数の実行方法はどういった違いがあるのでしょうか?実行結果は同じなのでそれぞれどういった場合に使うのかについての答えが得られれば幸いです。リンクを張っておきます。部分はコメントアウトしてあるので実行する際にコメントを外してください。票5まずこれらをつけている意味を説明します。文なので呼び出せません。}と同じだというのはいいでしょうか。console.log(a);}(1234)こう書いているのと変わりありません。見ると関数呼び出されないですよね?関数testが定義され、1234が評価されておしまいです。console.log(a);}(1234)は、関数に名前をつけ忘れてる(または名前が来るべきところに括弧が来たなど)と判断されます。この状態であればそう見えませんか?一方、以下の二つの結果はfunctionが出力されます。//});文では無く式として評価された場合、これらは関数そのものを返します。これを利用して括弧をつけることで、文で終わらせずに式として評価させています。式の結果として関数が返り、これによって呼び出し可能な左側が手に入れることができます。頭に!をつけるのも理由としては同じです。+でも動きます(前の行の終わり方によっては影響でるかもしれませんが)、あとは以下の様に代入でも式になるので上手くいきます。not演算が発生するという違いがあるものの、即時で使う場合であれば戻り値は使いませんので問題ないという事になります。取り忘れないよう気を付ける必要があります。|1一時的な関数を即呼び出して実行するという意味で違いはないです。(!を使う方が1文字少ない)関数が返値を持つ場合は!の方は論理値になってしまうという違いがあります。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。