Jshint.comはエラーを出しています:
36行目:var signin_found; 「use strict」ステートメントがありません。
Jsファイルの先頭に「use strict」を追加します(.jsファイルの1行目):
"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の別の質問で「use strict」の詳細:
JavaScriptで "use strict"は何をし、その背後にある理由は何ですか?
更新。
Jshint.comには何か問題があります。各関数内に「use strict」を指定する必要がありますが、ファイルごとにグローバルに設定できるようにする必要があります。
jshint.comはこれが間違っていると考えています。
"use strict";
function asd()
{
}
しかし、何も問題はありません...
各関数に「use strict」を指定してください:
function asd()
{
"use strict";
}
function blabla()
{
"use strict";
}
それからそれは言う:
よくやった! JSHintはコードに問題を発見していません。
JSHintメンテナはこちら
JSHint(Webサイトで使用されるバージョン)では、コードで関数レベルの厳格モードを使用する必要があります。これをオフにするのは非常に簡単です。「コードが厳格モードでない場合に警告する」チェックボックスをオフにするだけです。
@Czarekが示唆するように、グローバルストリクトモードを許可しないのはなぜですか?ページで使用されているJavaScriptファイルの一部は、厳密モード互換ではない可能性があり、グローバル厳密モードはそのコードを破壊します。グローバルストリクトモードを使用するには、globalstrict
というオプションがあります。
お役に立てば幸いです!
Jshintは、ファイル全体への誤った割り当ての厳格モードから「保護」しようとしているからだと思います。また、コードを匿名関数でラップするか、何らかの名前空間を使用することも適切です。
例えば両方とも厳格モードで機能します:
(function() {
"use strict";
function foo() {
.....
}
function bar() {
.....
}
}());
JSlintでは、コードを「厳格モード」にする必要があります
これを行うには、コードの先頭に"use strict";
を追加するだけです。