我最近看到一篇帖子说从不在JavaScript(ECMAScript6)中使用var
。始终使用const
或let
代替。我有来自使用var
的YouTube API文档的以下代码段。
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;
}
}
当我将var color
更改为let color
时,我的linter建议底部附近的行(if (color)
)将始终评估为true。那就是“条件总是如此”。我无法理解let
导致行为的原因,var
没有。
答案 0 :(得分:2)
短信是错的。
根据您使用if (color)
还是let color
,最后var color
完全不受影响。它仅受if
playerStatus
color
次测试的影响。
正如其他人所说的那样,你可以通过在let color = null;
中为Private Sub CommandButton1_Click()
Me.Delete
ThisWorkbook.Worksheets("MainMenu").Activate
End Sub
分配一个默认值来解决linter bug,这可能会避免linter遇到的混乱。