簡體   English   中英

帶雙引號插值的Javascript中的字符串比較

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM