問題タブ [use-strict]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - ユーティリティ オブジェクトのスコープを変更せずに "use strict" を使用するにはどうすればよいですか?
次のようないくつかのグローバル ユーティリティ オブジェクトを使用しています。
この場合の使い方"use strict"
は?私は次の方法を試しました:
しかし、ご想像のとおり、StringUtils
はその範囲外では利用できなくなりました。
javascript - これは Chrome のバグですか、それとも「use strict」と eval の使用が無効ですか?
このコードは、Chrome を除くすべてのブラウザーで "ok" のアラートを表示します。
(jsfiddleで試してください)。
私がしているのは'use strict'
、すべてeval
コンテキスト内で、関数から外部変数を参照することだけです。クロム 言う
devtool: 'eval'
注: Webpack で使用するときに最初に直面しました。
javascript - 「厳密な使用」を追加しますか。関数ブロックへの影響は、後でプロトタイプに追加されるメソッドとプロパティに影響しますか?
これについていくつか検索しましたが、正確なものは見つかりませんでした。次の例を検討してください。
私の質問は、次の各シナリオに関係しています。
シナリオ 1:上記と同じファイルに、次のコードがあります。
または --> シナリオ 2:別のファイルで、シナリオ 1 と同じコード (コンストラクターの前または後に置くことができます。明らかに:
要するに、私が理解しようとしているのは、「厳格な使用」の方法です。コードに影響を与えます。別の良い質問: JShint が "関数のみの使用を推奨する理由
javascript - Javascriptは厳密なエラーをキャッチしません
AMD 用の require.js を使用する backbone.js アプリを作成しています。use strict
ブラウザでのサポートを確認するために、次のコードを含めました。ただし、コードが実行されると、スローされたエラーvar o = {p:1, P:2}
は期待どおりにキャッチされず、代わりにページ全体が強制終了されます。
Chrome コンソールに次のエラーが表示されます: Uncaught SyntaxError: Duplicate data property in objectliteral not allowed in strict mode
エラーがキャッチされるのではなく、ページがクラッシュするのはなぜですか? どうすればこれを修正できますか?
javascript - function foo(param) { alert("foo が呼び出されました"); } および $scope.foo = function(param){alert("foo");};
他の多くの人と同じように、AngularJS で同様の問題を抱えていると思います。以前のエラー メッセージ (テスト記述ブロック内からコントローラー関数を呼び出せなかった) を修正していたところ、新しいエラーが発生しました。
エラー: [ng:areq] 引数 'fooController' は関数ではありません。未定義です
他の投稿を読みましたが、まだ修正できません。
だから私のコントローラーは..
私のコントローラ仕様は..
fooController は関数ではないと言い続けるのはなぜですか??
ありがとうございます。
古い投稿を編集しました。一番下の投稿を読んでいただけますか (私の新しい質問ですか? :))
function - JSHint で、パラメーターを使用した自己呼び出し関数の最後に「use strict」エラーが表示されないのはなぜですか?
jsHint は、パラメーターを渡す標準モジュール パターンを使用して自己呼び出し関数の最後にエラーを生成します。}(window.document, jQuery))
理由を知っている人はいますか?
javascript - 「use strict」が依然として文字列リテラルであるのはなぜですか?
strict
JS でスイッチをオンにするために引用符で囲まれた文字列リテラルを使用する必要があるのはなぜですか? 確かに、組み込み関数の呼び出しなど、もう少し強く「型付けされた」ものをここで使用できますObject.UseStrict()
。文字列リテラルに頼らなければならない理由は何ですか?
node.js - なぜ "let" es6 ハーモニーは use strict でのみ機能するのですか?
このコード:
..「SyntaxError: 拡張モード外の不正な let 宣言」を与える
しかし、「厳密な使用」を使用すると、正常に機能します。
なぜ「let」が最初に「use strict」モードと統合されたのか興味深いです。( http://kangax.github.io/compat-table/es6/#nodeharmonyによる)