ESモジュールを使用する場合は「使用は厳格な」暗黙のですか?

valueu:

私は、JSを学び、「厳格な使用」に出くわしました。次に、ここでは一つ一つのjavascript関数のI書き込み用万一I「の使用は、厳格な」?@Bergiは「 -ファイルごとに一度-それはすべてあなたの機能によって継承されているので、あなただけのモジュールスコープの『厳格な使用』に置く必要があります」と述べています。それはによって自身の内側に「厳格な使用」特定のモジュールの用途に用いた各機能「それは、すべての機能によって継承される」というのは本当でしょうか?

CertainPerformance:

それはによって自身の内側に「厳格な使用」特定のモジュールの用途に用いた各機能「それは、すべての機能によって継承される」というのは本当でしょうか?

場合、この関数は、strictモードで実行されます:

(1)関数はES6モジュール内である(これらはすべてかかわらず、厳密なモードで実行する)、又は

適切な(2)がある'use strict'関数定義上のディレクティブは、字句

このような内部のような、いくつかのあまり一般的でないインスタンスに加えてconstructor

方法'use strict'字句的に継承され、同じ方法変数を参照することができる動作、及びどのように可変範囲の動作-機能の任意の外部ブロックが厳密である場合、内部関数が同様に厳密です。したがって、たとえば、次のコードで:

'use strict';
function foo() {
  function bar() {
    function baz() {
    }
  }
}

あなたの中に入れ、他のどのようなコードに関係なくfoobar、およびbazすべてのこれらの関数のは、どのようにしているの実行に関係なくは、strictモードで実行されます。これらの機能の一つはソースから呼び出された場合はされていません strictモードで実行されている、呼び出された関数は、まだstrictモードで実行されます。例えば:

<script>
'use strict';
function foo() {
  return function bar() {
    return function baz() {
      console.log('baz running. strict:', this === undefined);
    }
  }
}
foo()()();
</script>
<script>
// Non-strict script calling strict function:
foo()()();
</script>

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=31326&siteId=1