简单的javascript,否则无法工作

简单的javascript,否则无法工作,javascript,if-statement,Javascript,If Statement,这真的很奇怪,这以前从未发生过。我确信解决方案就在我眼前 从$.post返回的字符串上的简单javascript if-else 出于某种原因,if-else语句正在通过result==pswd并执行alert3; 我相信我也遇到过类似的情况。我遗漏了什么?看起来像是出错了。如果您使用下面的代码并省略var声明。它将发出启动警报。但if将无法显示警报。我认为,因为var在技术上是空的 或者在返回的字符串中有隐藏字符。可能需要检查返回字符串的字符长度,看看它是否确实是您看到的值 您可能需要先声明v

这真的很奇怪,这以前从未发生过。我确信解决方案就在我眼前

从$.post返回的字符串上的简单javascript if-else

出于某种原因,if-else语句正在通过result==pswd并执行alert3;
我相信我也遇到过类似的情况。我遗漏了什么?

看起来像是出错了。如果您使用下面的代码并省略var声明。它将发出启动警报。但if将无法显示警报。我认为,因为var在技术上是空的

或者在返回的字符串中有隐藏字符。可能需要检查返回字符串的字符长度,看看它是否确实是您看到的值

您可能需要先声明var,然后再将其传递给期望返回值的函数。我不太喜欢在javascript中使用ByRef。所以我可能错了

<!DOCTYPE html>
<html>
<body>
<script>
    var result = "pswd"

    alert("start");

    if (result == "error") 
    { 
        alert("error");
    } else if (result == "pswd") {
        alert("good"); 
    } else {
        alert("no match"); 
    }

    alert("done");

</script>

</body>
</html> 

显然,结果并不等于误差或pswd。很可能它有一个额外的空间或字符,你没有想到。找个傻瓜!我建议使用调试工具在浏览器中设置断点以验证结果的值。不,结果肯定是错误或pswd,我已仔细检查了空格等。将警报替换为alerttypeof result+“”+encodeURIComponentresult,并显示结果。如果您有权访问console,您也可以使用console.log而不是alert。如果您选择了字符串不是您认为的字符串,或者javascript中的比较被破坏,我猜每次都是前者。这真的不适用。他将变量定义为函数的参数。不。该变量在ajax调用返回时调用的函数的函数头中定义。不,在您的代码中,并不是因为变量为null,您没有得到警报,而是因为变量结果未知。只需查看错误控制台。如果定义了它,但没有像var result那样给它赋值;,值未定义。只是想知道jscript。。。。对于未定义的变量,可以使用==。。。。vs=我真的不明白被否决的选票。。。因为我只是在详细说明他提供的代码的实际逻辑解释。。。。
<!DOCTYPE html>
<html>
<body>
<script>
    var result = "pswd"

    alert("start");

    if (result == "error") 
    { 
        alert("error");
    } else if (result == "pswd") {
        alert("good"); 
    } else {
        alert("no match"); 
    }

    alert("done");

</script>

</body>
</html>