如何在javascript中正确满足条件“如果”

Posted

技术标签:

【中文标题】如何在javascript中正确满足条件“如果”【英文标题】:How to fulfill the condition correctly "If" in javascript 【发布时间】:2021-08-17 11:37:15 【问题描述】:
            function UserCheckId() 
                $.ajax(
                    type: "POST",
                    dataType: "json",
                    url: "/Home/SomeAction",
                    data:  qrcode: scannedQR[txt] ,
                    dataType: 'json',
                    success: function (data) 
                            if (data = "Storekeeper") 
                                document.location.replace("/Storekeeper.aspx");
                            
                            else 
                                alert("Error");
                            
                    
                );

有一个 UserCheckId 函数,我在其中从 C# 调用 SomeAction 函数(它返回一个字符串值)并将结果传递给 javascript。之后,我想检查结果的值是多少。如果是“Storekeeper”,则转到该站点,否则会弹出错误。问题是无论值是什么(例如,C# 将返回值“Collector”),Storekeeper 的条件在任何情况下都满足。我用警报检查了数据,它正确输出了字符串值。该怎么办?请帮帮我!

【问题讨论】:

我不明白这一行. The problem is that whatever the value is (for example, C # will return the value "Collector"), the condition for the Storekeeper is met in any case. = 是一个作业。用于比较使用=====。 assinment 将始终返回分配的值,因为这是非空字符串,在 if 的条件内,它将评估为真值,因此将执行 if 的第一个分支。 console.log(data)看看它打印了什么。 @Swati 如果你把它放在if 之前,它将打印dataif 之前的任何值。如果你把它放在if 之后,它会在if 之后打印Storekeeper,因为这是data 在条件if(data = "Storekeeper") 中分配的值 【参考方案1】:

要检查 javascript 中的相等性,请使用严格相等运算符===,它将检查类型和值。在任何比较操作之前也总是标准化(如修剪、toLowerCase 等)

if (data?.trim().toLowerCase() === "storekeeper") 

【讨论】:

不确定你为什么使用toLowerCase,他可能不想接受例如"STOREKEEPER". 最好在进行任何比较操作之前进行归一化。像 trim、toLowerCase,这样任何不需要的空格或大写字母都可以处理 不,这不是“更好”。有时可能合适,有时不合适。 不不感谢您的反馈,请保留此信息。 OP 的问题(可能)与值的大小写无关。主要问题是,他使用了赋值(=)而不是比较(=====)。您应该在回答中提到这一点。 "always normalize ..." 也不是一个有效的假设,因为这可能不适用于所有情况,在这些情况下,人们想要区分 "Storekeeper""storekeeper""STOREKEEPER"跨度>

以上是关于如何在javascript中正确满足条件“如果”的主要内容,如果未能解决你的问题,请参考以下文章

在 C++11 中使用字符串如何满足条件?

想要成为架构师?先看看这些条件满不满足!

想要成为架构师?先看看这些条件满不满足!

在 JavaScript 中,如何确保数组至少有一个特定元素,而其他元素满足另一个条件?

如何在Vue.js中正确添加条件事件绑定?

如果不满足最小和最大条件,则阻止表单提交