83

Jshint.com で次のエラーが表示されます。

36 行目: var signin_found; 「use strict」ステートメントがありません。

4

4 に答える 4

40

js ファイルの先頭 (.js ファイルの 1 行目) に「use strict」を追加します。

"use strict";
...
function initialize_page()
{
    var signin_found;
    /*Used to determine which page is loaded / reloaded*/
    signin_found=document.getElementById('signin_button');
    if(signin_found) 
{

ここで、stackoverflow に関する別の質問で「厳密な使用」について詳しく説明します。

JavaScript で "use strict" は何を行い、その背後にある理由は何ですか?

アップデート。

jshint.com には問題があります。各関数内に「use strict」を入れる必要がありますが、ファイルごとにグローバルに設定できるようにする必要があります。

jshint.com は、これは間違っていると考えています。

"use strict";    
function asd()
{
}

しかし、それには何の問題もありません...

各関数に「use strict」を入れてほしい:

function asd()
{
    "use strict";
}
function blabla()
{
    "use strict";
}

次に、次のように述べています。

よくできた!JSHint は、コードに問題を検出していません。

于 2011-11-12T19:46:15.900 に答える
34

JSHint メンテナはこちら。

JSHint (Web サイトで使用されているバージョン) では、コードで関数レベルの厳格モードを使用する必要があります。これをオフにするのは非常に簡単です。「コードが厳密モードでない場合に警告する」チェックボックスをオフにするだけです。

jshint.comのスクリーンショット

@Czarek が提案するように、グローバルな厳密モードを許可しないのはなぜですか? ページで使用されている JavaScript ファイルの一部は厳密モードと互換性がない可能性があり、グローバルな厳密モードはそのコードを壊します。グローバル厳密モードを使用するには、 というオプションがありますglobalstrict

それが役立つことを願っています!

于 2011-11-12T23:05:11.827 に答える
11

jshint が、ファイル全体に厳密なモードを誤って割り当てないように「保護」しようとしているからだと思います。また、無名関数でコードをラップしたり、ある種の名前空間を使用したりするのも良いことです。

たとえば、どちらも厳密モードで機能します。

(function() {

   "use strict";

   function foo() {
        .....
   }

   function bar() {
        .....
   }
}());
于 2013-07-24T13:20:19.457 に答える
5

JSlint では、コードを「厳密モード」にする必要があります

これを行う"use strict";には、コードの先頭に追加するだけです。

于 2011-11-12T19:37:00.270 に答える