繁体   English   中英

带双引号插值的Javascript中的字符串比较

[英]String comparision in Javascript with double quote interpolation

我有一个javascript变量var a =“ SUCCESS”; 在进行验证时,我得到了另一个值var b = SUCCESS; 现在我要比较

If (a == b){
alert("Allowed");
}else {
alert("Denied");
}   

由于var b的双重qoute问题,以上代码无法正常工作。

有什么方法可以比较("SUCCESS" == SUCCESS) 我想为变量b分配双引号。

如果我们尝试这种方式(a == "b")则b的值将不会插值。 有什么办法在双引号内使用var b吗?

=========

我在这里添加更多信息

首先,非常感谢新浦! 因为你非常接近我的问题! var a和var b将没有静态值,它将在运行时分配。 var a,例如“ Jan”或“ Feb”或“ Mar”等。var b诸如Jan或Feb或Mar ...如果我比较(a == b)则为false。所以我想添加双引号像perl qq [“”] ...一样将var b的值转换为字符串对象吗? 最后,我想要var b的值也像“ Jan”或“ Feb”等..所以我可以比较“ if(a == b)”,再次感谢!

简短的答案是没有。 您要在这里做什么真的很可疑。 a恰好是一个变量,用于存储字符串类型的数据,其值为“ SUCCESS”

b正在存储成功。 根据您的问题,不清楚“成功”在这里意味着什么。 如果它是在其他地方定义的另一个变量,那很好。 在这种情况下,如果var SUCCESS =“ SUCCESS”,则a == b将使您成真。

但是,如果根本没有定义SUCCESS,那么您的比较就等于== undefined

从您的问题中我了解到,您有两个变量:

var a = "SUCCESS",
    b = SUCCESS;

如果像我刚才那样声明变量,则将SUCCESS字符串分配给a变量,而b变量将等于SUCCESS VARIABLE。 基本上,如果您想检查(a == b)并期望得到真实的评估,则必须定义SUCCESS变量并将其与a变量分配相同的值:

var SUCCESS = "SUCCESS",
    a = "SUCCESS",
    b = SUCCESS;

a == b // now true

如果您未声明SUCCESS变量并尝试将其作为值分配给另一个变量,则在比较a和b时会出现“ 引用错误” ,因为您没有在代码中声明任何SUCCESS变量。

此外,关于您的(a == "b")比较,当您这样编写比较时(考虑到您的变量包含"SUCCESS"字符串的事实,此条件将评估以下内容:

(a == "b") // this is basically "SUCCESS" == "b", which obviously will return false, since the strings are different

将现有变量转换为字符串很容易,但是首先需要确保声明了该变量并为其分配了值 只需在变量上使用toString()函数即可将其类型更改为字符串:

var a = 25;

console.log(a); // This will print 25
console.log(typeof a); // This will print Number

a = a.toString(); // This will convert a from 25 to "25"

console.log(a) // Now, this will print "25"
console.log(typeof a); // You will see that a is a String now

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM