developer network内の記事は、webpackを使う場合を除いて、グローバル汚染対策で即時関数で括られています。
https://cybozu.dev/ja/kintone/docs/guideline/coding-guideline/
|
(() => {
// 悪い例
globalVariable = 1; // グローバル変数として変数を定義している
// 良い例
const localVariable = 1; // 即時関数内のローカル変数として変数を定義する
})();
|
これは勿論正しく動きますが、
IE対応が不要になった今の時代では、ES6のブロックスコープを使って
こう書くだけで十分かと思ったのですが、いかがでしょうか?
{
// 悪い例
globalVariable = 1; // グローバル変数として変数を定義している
// 悪い例2
var varVariable = 1; // varで定義した場合はブロックスコープが効かない
// 良い例
const localVariable = 1; // ブロックスコープ内のローカル変数として変数を定義する
}
varで定義した場合に関してはブロックスコープが効かないので、
それを想定する場合は即時関数にしなければいけないと思います。
しかし、もはやvar自体が推奨されないので、
即時関数も不要かと思いました。
(たとえばchangeハンドラ内でasync-awaitを使いたい場合などは
async即時関数は役に立ちますが、また別の話です)