我最近看到一篇帖子说永远不要使用无功功率,无功功率在JavaScript中(ECMAScript6)。始终使用常数而不是。我有以下来自YouTube API文档的代码片段,该文档使用无功功率,无功功率.

函数更改边框颜色(播放器状态){var颜色;if(playerStatus==-1){color=“#37474F”;//未启动=灰色}else if(playerStatus==0){color=“#FFFF00”;//ended=黄色}else if(playerStatus==1){color=“#33691E”;//播放=绿色}else if(playerStatus==2){color=“#DD2C00”;//暂停=红色}else if(playerStatus==3){color=“#AA00FF”;//缓冲=紫色}else if(playerStatus==5){color=“#FF6DOO”;//视频提示=橙色}if(颜色){document.getElementById('existing-iframe-example').style.borderColor=颜色;}}

当我改变时var颜色let颜色,我的短绒表明线靠近底部(if(颜色))将始终计算为true。这就是“条件总是正确的”。我很难理解导致行为和无功功率,无功功率没有。

4
  • 1
    尝试让color=null; 评论 2017年12月16日17:23
  • 1
    @charlietfl解决了这个问题,但并不是我的问题,为什么在这种情况下var和let是不同的。
    – 皮特
    评论 2017年12月16日17:26
  • 4
    老实说,我认为短绒是错误的 评论 2017年12月16日17:29
  • 2
    @charlietfl我也是。我一直在寻找一种礼貌的表达方式。linter可能会被那里分配值的许多块弄糊涂颜色. 评论 2017年12月16日17:33

1答案1

重置为默认值
2

短绒就是错了。

最后if(颜色)完全不受您是否使用let颜色var颜色。它只受以下因素的影响如果测试玩家状态满足他们的条件。

正如其他人所说,您可能可以通过为颜色如中所示让color=null;这可能会避免林特给自己带来的困惑。

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.