首页 > 解决方案 > 仅返回最终条件的 if/else 语句出现问题

问题描述

我正在尝试调试我拥有的 .js 文件。该文件使用 if/then 返回变量。每个变量都设置为 one location.replace("url"),因此在任何给定点都应该返回一个 url。

我尝试用 替换每个变量location.replaceconsole.log希望它只返回一个结果作为函数的预期。相反,它一次返回每一个变量,并且只记录它们的底层 URL。

这是以下花絮的简短 JSfiddle:https ://jsfiddle.net/j_Sani/ehutcnmb/12/

这是一个更长的 JSfiddle 更彻底的变量: https ://jsfiddle.net/j_Sani/ehutcnmb/33/

<head>
<script>
var t1 = location.replace("https://stackoverflow.com/");
var t2 = location.replace("https://www.google.com/");
var t3 = location.replace("https://www.bing.com/");

const now = new Date();
  const s1 = now.getHours() === 15;
  const s2 = now.getHours() === 16;

function go2() {
    if (s1) {
        return t1;
    } else if (s2) {
        return t2;
    } else {
        return t3;
    }
}
</script>
</head>

基本上现在,当我在浏览器中加载文档时,它会else通过返回t3. 如果我在声明中得到任何其他变量,我会喜欢它。在我的 JSfiddle 中,我包含了一个带有更多else if's 的更长版本。

感谢所有输入。

标签: javascriptif-statementdebugging

解决方案


这样写,location函数立即执行。

var t3 = location.replace("https://www.bing.com/");

您需要将该声明放入您的if声明中。


推荐阅读