0

我有一个 javascript 变量 var a = "SUCCESS"; 在进行一些验证时,我得到了一些其他值 var b = SUCCESS; 现在我想比较

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

由于 var b 的双引号问题,上述代码无法正常工作。

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

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

=========

我在这里添加更多信息

首先非常感谢Shinpou !因为你非常接近我的问题!var a 和 var b 没有静态值,它将在运行时分配。var a like "Jan" or "Feb" or "Mar" etc.. var b like Jan or Feb or Mar ...如果我比较 (a == b ) 那么它将是错误的。所以我想添加双引号到 var b 的值,如 perl qq [""]...如果 qq[""] 在 Javascript 中不可用,我们可以将 var b 的值转换为字符串对象吗?最后我想要 var b 的值也像 "Jan" 或 "Feb" 等..所以我可以比较 "if (a== b) " 再次感谢!!!

4

2 回答 2

0

简短的回答是否定的。您在这里尝试做什么真的很值得怀疑。a 恰好是一个存储字符串类型数据的变量,其值为“SUCCESS”

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

但是如果 SUCCESS 根本没有定义,那么你的比较就相当于 a == undefined

于 2013-11-08T20:12:41.120 回答
0

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

var a = "SUCCESS",
    b = SUCCESS;

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

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

a == b // now true

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

另外,关于您的(a == "b")比较,当您这样编写时(考虑到您的 a 变量包含"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
于 2013-11-08T20:15:40.593 回答