24

このページでは:

<!DOCTYPE html>
<html>
  <head>
    <script>
        "use strict";
        var foo = 2;
        delete foo;
    </script>
  </head>
  <body></body>
</html>

Firebug コンソールは次のようになります。

applying the 'delete' operator to an unqualified name is deprecated
>>> foo
ReferenceError: foo is not defined
foo

しかし、これは成功しています:

>>> var bar = 2;
undefined
>>> delete bar;
true

delete foo;スクリプトが壊れないようにコメントアウトしても、「変数宣言を介して作成され、 DontDelete 属性barを持っているため、Global オブジェクトのプロパティである」という事実にもかかわらず、削除は成功します。

>>> foo
2
>>> delete foo
false
>>> var bar = 2;
undefined
>>> delete bar
true

FireBug や Chrome のコンソールで「厳格モード」を有効にすることはできますか?

4

5 に答える 5

14

firebug コンソールは、すべてのコードを「eval」呼び出しでラップすることで機能するため、スクリプトの最初のステートメントは「use strict」ではなくなります。したがって、無効になります。コードを関数にラップして、その特定の関数に「厳密な使用」を強制することもできますが、私が知っている最善の解決策は、コンソールをスキップしてページ自体で直接テストすることです。

于 2012-07-26T20:44:18.030 に答える
4

Shift+Enter を使用して「use strict」と入力します

このような ここに画像の説明を入力

于 2016-10-26T02:31:17.393 に答える
1

Chrome:'use strict';コード行にプレフィックスを入れます (および/または複数行の場合は shift+enter)

'use strict'; var foo = 2; delete foo;

于 2019-05-02T12:17:54.210 に答える
-2

Chrome では、「chrome://flags」に移動し、「実験的 JavaScript を有効にする」に移動します。再起動します。

于 2018-09-08T12:37:37.190 に答える