JavaScript 関数の直後に丸カッコ?
人様のコード見てたら、こういうの↓を見かけました。
var a = function() {
return 1;
}();
console.log(a); // -> 1
※この記事はChrome (71.0.3578.98) で確認してます。
関数を即時実行して結果を受け取るのって、今までずっとこうやって↓書いてたのですが、もっと短くなるんですね。
var a = (function() {
return 1;
})();
var b = (() => {
return 2;
})();
console.log(a); // -> 1
console.log(b); // -> 2
でも、アロー演算子だとこの書き方はできないみたいです。}();
の (
で構文エラーになります。
var a = () => {
return 1;
}();
// -> SyntaxError: Unexpected token (
なんでだろ?
こんな↓書き方もできます。無意味に async function
にし、さらに戻り値を反転してます。キモいです。
var a = !async function() {
return true;
}();
console.log(a); // -> false