変数が設定されていない場合にのみ、最初に変数を設定しようとしています。何らかの理由で、変数が設定されているかどうかを判断するために使用しているロジックは、変数が設定されているかどうかにかかわらず実行されているようです。変数が設定されているかどうかをチェックすることはできません
私のコードは
var l0 = -210;
function add(){
var lThis;
if (lThis == null){
lThis = l0;
console.log('set lThis to '+ lThis);
}
lThis ++;
}
var incrementInterval = setInterval(add, 33);
間隔が実行されるたびに、そう "(lThis == nullの)場合は、" 何も
をやっていないしているようだ "-210にlThis設定" コンソールログですexample on codepen
lこれは、add関数のローカル変数であり、関数が呼び出されるたびに初期化または再宣言されます。合併症を避けるために、lThisをグローバルに宣言することもできます。 - そして、値をリセットするために手作業で意図的にコードを無効にしない限り、リテラルをnullに比較することはありません。それでも、リテラル値を持つと思われる変数を無効にするのは間違っています。 –