2017-04-04 7 views
0

なぜjslintはid_intervalが範囲外であると言っていますか? JavaScriptは前回チェックした関数スコープです。 なぜjslintは変数が範囲外であると言っていますか?

Pub.elementLoaded = function (id, callback) { 
    var isLoaded = document.getElementById(id); 
    var id_interval = setInterval(function() { 
     if (isLoaded) { 
      callback(); 
      clearInterval(id_interval); 
     } 
    }, 1); 
}; 

enter image description here

答えて

0

JSLintは、その著者はベストプラクティスではなく、実際のJavaScriptの構文規則を考えるものが適用されます。変数の宣言についてjslint.comからの引用:

JSLintは、VaRのルールとのletルールの交差点を使用し、そうすることによって は、どちらかに関連するエラーを回避します。名前は、関数内で一度だけ宣言された でなければなりません。 が使用される前に宣言する必要があります。

コードでは、id_intervalが独自の宣言内で使用されます。その時点では、厳密には宣言されていません。

関連する問題