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

时间:2013-11-08 20:05:42

标签: javascript

我有一个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)”再次感谢!!!

2 个答案:

答案 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