即時関数とは
即時実行関数式のことで、定義すると即時に実行される。
またブロック内からのホイスト回避や、グローバルスコープ名の汚染回避などが可能となる!!!!
・・・
・・・・・
あれ?俺ってプログラミング勉強してるんじゃないのか?汚染って…
てなわけで、難しい用語を避けていても仕方ないので一つ一つ理解していこう。
まずはブロック。
これは{}のことだな
次にホイスト。
関数の最初に関数内ローカル変数が宣言されること。
↑ローカル変数は宣言された関数内のみで利用される変数
つまりホイスト回避は関数の最初にローカル変数を宣言しなくて済むということ?
つまり【ブロック内からのホイスト回避】とは{}の中でいちいちその中でしか使えない変数を宣言する必要がない!ってことかな?
グローバルスコープ名はどこでも使える変数や関数のこと
汚染回避はその変数が他のものに気づいたら変わってしまうミスを回避できるってことか?
どうやら即時関数ではconstでわざわざ変数を一個ずつ格納しなくても。function関数で()括って即実行できるらしい
<script>
const sum = function (a,b){
const result = a + b;
return result;
}
const answer = sum(1,2);
console.log(answer);
</script>
こう書いていたのが即時関数を使えば↓
<script>
const sum = (function (a,b){
const result = a + b;
return result;
})(1,2);
console.log(sum);
</script>
追記:どうやら汚染回避とは、例えばJSファイルが複数あり、その中でグローバルで決められた変数があったとして他のファイルでグローバルスコープで定義すると上書きしてしまう可能性があるようだ。
難しくなった…
イメージで言うと、こっちのファイルで決めた変数(A)があっちのファイルでは違うもの(B)で定義してしまって、こっちのファイルの変数も(B)になってしまう
というのを回避するために即時関数をを使う
ということだろう。
この記事が気に入ったらサポートをしてみませんか?