我有一个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?
======
我在这里添加更多信息
首先非常感谢Shinpou !!因为你非常接近我的问题!! var a和var b将不具有将在运行时分配的静态值。 var a like“Jan”或“Feb”或“Mar”等.. var b喜欢Jan或Feb或Mar ...如果我比较(a == b)那么它将是false.So我想加双引号to var b的值如perl qq [“”] ...如果在Javascript中没有qq [“”],我们可以将var b的值转换为字符串对象吗?最后我想要var b的值也像“Jan”或“Feb”等。所以我可以比较“if(a == b)”再次感谢!!!
答案 0 :(得分:0)
简短的回答是否定的。 你在这里尝试做什么真的很值得怀疑。 a恰好是存储类型为string的数据的变量,其值为“SUCCESS”
b正在存储SUCCESS。从您的问题来看,尚不清楚SUCCESS在这里意味着什么。如果它是在其他地方定义的另一个变量那么它就没问题了。在这种情况下,如果var SUCCESS =“SUCCESS”,则a == b将给出true。
但是如果根本没有定义SUCCESS,那么你的比较等同于== undefined
答案 1 :(得分:0)
据我所知,你有两个变数:
var a = "SUCCESS",
b = SUCCESS;
如果您像我刚才那样声明变量,那么您将SUCCESS
字符串分配给变量,而b
变量将等于SUCCESS
VARIABLE。基本上,如果您想检查(a == b)
并期望进行真正的评估,则必须定义SUCCESS变量并为其赋予与变量相同的值:
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