gpt4 book ai didi

javascript - 为什么在这种情况下 JavaScript 中的 let 与 var 不同

转载 作者:行者123 更新时间:2023-11-29 20:58:41 28 4
gpt4 key购买 nike

我最近看到一篇文章说永远不要在 JavaScript (ECMAScript6) 中使用 var。始终使用 constlet 代替。我从使用 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)) 将始终评估为真。即“条件永远为真”。我无法理解是什么 let 导致了这种行为,而 var 却没有。

最佳答案

linter 是错误的。

最后一个 if (color) 完全不受您使用 let color 还是 var color 的影响。它仅受 playerStatus 的任何 if 测试是否满足其条件的影响。

正如其他人所说,您可以通过为 color 分配默认值来解决 linter 错误,如 let color = null; 那样,这可能会避免linter 陷入了困惑。

关于javascript - 为什么在这种情况下 JavaScript 中的 let 与 var 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47848192/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com