インスタント関数を使用してstrict mode競合を解消
2180 ワード
グローバル(暗黙的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つのドキュメントの内容に基づいています.
Reference
この問題について(インスタント関数を使用してstrict mode競合を解消), 我々は、より多くの情報をここで見つけました https://velog.io/@eensungkim/즉시-실행-함수를-활용해-strict-mode-의-충돌-없애기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol