インスタント関数を使用してstrict mode競合を解消


グローバル(暗黙的global)


JavaScriptでは、var、let、constなどのキーワードがなくても変数を宣言できることを知っていますか?私は変数を宣言するときにlet,constを使うことを学んだので、キーワードがなければ間違いが出ると自然に思っています.
変数(キーワードなし)が宣言されておらず、値が割り当てられている場合、JavaScriptはグローバルオブジェクトのPropertyとして動的に作成します.この現象は全局を隠すと呼ばれている.

strict mode


Javascriptでは、必ずしも知って利用する必要はありません.無名の戦いがこのような状況だと言える.
逆に、変数を宣言するときはlet、constキーワードを使用する必要があります.(ES 6からvarを使うことを勉強してもあまりよくない...省略しても)
もちろん、プログラマーも人間である以上、間違いは必ずあります.文法上の知識が不足しているので、間違いがあるかもしれません.これをサポートするために「strictmode」が登場した.コード'use strict';を追加することにより、構文をより厳密に適用することができる.
ただし、ある場所でstrictmodeを使用し、ある場所で使用しないとエラーが発生する場合があります.特に、外部ライブラリをインポートおよび使用する場合に発生する可能性があります.

インスタント実行関数


strict modeは、外部ライブラリとの競合を回避しながら、作成したスクリプトに適用できます.これがインスタント実行関数の使用方法です.
通常、匿名関数によって作成されるインスタント実行関数とは、関数が宣言された直後に呼び出される関数です.グループ演算子()を使用して、関数を定義および実行します.ここに'use strict';を追加します.
(function () {
  'use strict';
  ...  // 여기에 작성
}());
strictmodeが上記のように適用されると、競合することなくstrictmodeを適用することができる.

outro


実際、個人的にはESLintのようなツールを使うのがもっと良い選択だと思います.一部のブラウザではstrictmodeの一部しかサポートされていません.(探検家は10以下では支援しないそうですが…あれは探検家…邑邑邑)
私たちはmdn公式ドキュメントpoiemaweb関連リンクをつなぎ、より多くの人に好奇心を感じさせます.今日書いた文章の大部分は、この2つのドキュメントの内容に基づいています.