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