[英]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.