2017-12-16 11 views
2

JavaScript(ECMAScript6)でvarを使用しないとの投稿が最近表示されました。代わりに、常にconstまたはletを使用してください。 varを使用するYouTube APIドキュメントの次のコードスニペットがあります。JavaScriptのこの場合のvarと同じではない理由

function changeBorderColor(playerStatus) { 
    var color; 
    if (playerStatus == -1) { 
     color = "#37474F"; // unstarted = gray 
    } else if (playerStatus == 0) { 
     color = "#FFFF00"; // ended = yellow 
    } else if (playerStatus == 1) { 
     color = "#33691E"; // playing = green 
    } else if (playerStatus == 2) { 
     color = "#DD2C00"; // paused = red 
    } else if (playerStatus == 3) { 
     color = "#AA00FF"; // buffering = purple 
    } else if (playerStatus == 5) { 
     color = "#FF6DOO"; // video cued = orange 
    } 
    if (color) { 
     document.getElementById('existing-iframe-example').style.borderColor = color; 
    } 
} 

私はlet colorvar colorを変更すると、私のリンターは下(if (color))ニアラインは常にtrueと評価されますことを示唆しています。つまり、「条件は常に真」です。私はletが何の原因であるのか理解できず、varはありません。

+1

試し '色= nullをしてみましょう。 ' – charlietfl

+1

@charlietflは問題を解決しますが、実際にvarとletがなぜこの場合に違うのかという私の質問ではありません。 – Pete

+4

私はリンターが正直だと間違っていると思う。 – charlietfl

答えて

2

リンターは間違っています。

最後if (color)はあなたがlet colorvar colorを使用するかどうかによって全く影響を受けません。それはplayerStatusif試験のいずれかが条件を満たしているかどうかによる影響のみです。他の人が言ったように

、あなたはおそらくlet color = null;のようにcolorにデフォルト値を割り当てることによって、リンターのバグを回避することができ、それはおそらくリンターの中で自分自身を持って混乱を避けることができます

関連する問題