Jshint.com で次のエラーが表示されます。
36 行目: var signin_found; 「use strict」ステートメントがありません。
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 は、コードに問題を検出していません。
JSHint メンテナはこちら。
JSHint (Web サイトで使用されているバージョン) では、コードで関数レベルの厳格モードを使用する必要があります。これをオフにするのは非常に簡単です。「コードが厳密モードでない場合に警告する」チェックボックスをオフにするだけです。
@Czarek が提案するように、グローバルな厳密モードを許可しないのはなぜですか? ページで使用されている JavaScript ファイルの一部は厳密モードと互換性がない可能性があり、グローバルな厳密モードはそのコードを壊します。グローバル厳密モードを使用するには、 というオプションがありますglobalstrict
。
それが役立つことを願っています!
jshint が、ファイル全体に厳密なモードを誤って割り当てないように「保護」しようとしているからだと思います。また、無名関数でコードをラップしたり、ある種の名前空間を使用したりするのも良いことです。
たとえば、どちらも厳密モードで機能します。
(function() {
"use strict";
function foo() {
.....
}
function bar() {
.....
}
}());
JSlint では、コードを「厳密モード」にする必要があります
これを行う"use strict";
には、コードの先頭に追加するだけです。