問題タブ [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";
として、厳密モードでコードを実行すると速度が向上しますか?
javascript - JSHint 関数が定義されていません
私はより良い Javascript / JQuery コードを書き込もうとしており、Grunt で JSHint をセットアップしています。
今、私は自分のコードを調べましたが、「strict」を使用しなくても問題ないようです。コードを多くのファイル、管理セクション、lib セクション (JQuery、バックボーン用) などに分割しました。
そのため、ファイルの先頭に「use strict」を追加しようとしています。
JSHint は、AJAX 呼び出しの成功セクション内の関数が定義されていないと言っていますか? このセクションで呼び出した関数は他のファイルにありますが、私の Grunt 設定では JavaScript ファイルをビルドして、関数ファイルがすべてのライブラリ ファイルのすぐ下にあるようにします。
したがって、私のAJAX関数は次のとおりです。
したがって、関数ファイルで、次のように関数を作成しました。
ハイライタークラスで偶数/奇数行に色を付ける単純な関数です。
これはすべて機能しますが、「strictを使用」すると、EvenOddRow
関数が定義されていないと表示されます。
だから私は関数の範囲とは関係がないことをゲストにしていますか、それとも関数がAJAX関数内にあるからですか? を追加するwindow.EvenOddRows
と、JSHint が問題になります。
それで、これを行う最良の方法は何ですか?
投稿していないコードがあり、誰かが見る必要がある場合は、お知らせください。投稿します。
*私は失読症なので、自分自身を正しく説明していない可能性があります。その場合はお知らせください。質問を言い直します。ご理解いただきありがとうございます。
ありがとうございます、
javascript - jasmine テスト ファイルで「use strict」の関数形式を使用する必要がありますか?
AngularJS で見た例に基づいて、ジャスミンで単体テストを作成しています。Angular PhoneCat チュートリアル のこの単体テストなどの例では、グローバル形式の を使用してい'use strict'
ます。ただし、JSHintは私がすべきだと不平を言っています
「use strict」の関数形式を使用します。
が重要である理由はわかっています。また、ソース ファイルでグローバル形式で'use strict'
はなく関数形式を使用する必要がある理由も理解していると思います。'use strict'
ただし、jasmine テスト ファイルでは、グローバル形式の? を使用しても問題あり'use strict'
ませんか?
もしそうなら、ジャスミンのテストファイルだけに対してこれらの JSHint 警告を抑制することはできますか?
javascript - use strict が有効になっている場合、JavaScript で呼び出し元の関数を見つけるにはどうすればよいですか?
が有効になっているときに、関数の呼び出し先/呼び出し元を確認することuse strict
はできますか?
javascript - 「Use Strict」によって関数が未定義になるのはなぜですか
2 つのスクリプトをロードしているパーシャルがあります。2 番目のスクリプトは最初のスクリプトの関数を呼び出します...どちらのスクリプトも「use strict;」を使用します。頂点で。2 番目のスクリプトが最初のスクリプトの関数を呼び出すと、「Uncaught ReferenceError the function name is not defined」というメッセージが表示されます。
最初はスクリプトの順序に関係していると思っていましたが、デバッグを行った後、スクリプトが正しい順序で実行されていることがわかりました。部分は jquery 非同期呼び出しを介して読み込まれ、現在のビューに追加されます。また、2 番目のファイルが読み込まれるまで、クロムのデバッガーで最初のスクリプトの関数を問題なく呼び出すことができます。
私はちょっと頭がおかしくなり、すべてを切り取っただけで、それはまだ起こっています. これが私が取り組んでいるものです...
スクリプト 1
スクリプト 2
Ajax 呼び出し
部分的
ページが読み込まれたら、Chrome デバッガーを開き、「firstScript()」または「secondScript()」を実行すると同じエラーがスローされます。
use strict;
しかし、両方のファイルを取り出すと、両方とも機能します。ここで何が起こっているのですか?
javascript - 「厳格な使用」継承/スコープ
私はただ疑問に思っていました:
use strict
at//1
で十分ですか、それとも や のようなすべての場所で明示する必要があります//2
か//3
。
javascript - 厳格モードのオブジェクトの可変型?
この JavaScript の部分は、 がなくても問題なく動作し"use strict";
ました。しかし、厳密モードでグローバル変数が存在するかどうか、およびundeclared variable
エラーを発生させずにそのタイプを確認するにはどうすればよいでしょうか?
javascript - 「「use strict」ステートメントがありません」を修正するにはどうすればよいですか?
このコードを実行しようとすると、「'use strict' ステートメントがありません」というメッセージが表示されます。何が問題なのかわかりません。
javascript - グローバルな「use strict」を削除する方法は、babel によって追加されました
私は "use strict" の関数形式を使用していますが、変換後に Babel が追加するグローバル形式は必要ありません。問題は、「use strict」モードを使用していないいくつかのライブラリを使用していて、スクリプトが連結された後にエラーがスローされる可能性があることです