[英]How do you compare two variables in Javascript?
我試圖將兩個不同的變量相互比較,並在它們匹配時執行某些代碼。 變量是:userInput和commandOne
首先,按下一個按鈕以調用myTest()。
function myTest() {
userInput = document.getElementById("runBox").value;
testInput();
}
該函數從頁面上的輸入框中收集文本,並將其存儲在名為userInput的變量中。 然后調用我的下一個函數...
function testInput() {
if (userInput = commandOne) {
document.getElementById("demo").innerHTML += "<br>executed!";
}else {
alert("this is an alert message");
}
}
此部分旨在測試userInput是否與名為commandOne的變量匹配。 (commandOne的值當前設置為“ ip”)。
如果匹配,它將在具有“演示” ID的段落中添加文本(已執行!)。 如果不匹配,它將在警報框中向用戶發出警報。
我的問題是變量似乎沒有進行比較。 無論用戶將什么內容輸入到userInput中,文本(已執行!)都始終輸出到我的段落中。 似乎瀏覽器認為它們匹配時不匹配。
您在if語句中錯過了運算符。
if (userInput == commandOne)
==
比較值
if (userInput === commandOne)
===
比較值和數據類型。
如前所述-您使用了錯誤的運算符-但是我只想展示一種替代邏輯的方法:- 三元運算符 -使其可讀性更好,更簡潔,並減少了if / else標記。
順便說一句-在提供了代碼的情況下-您甚至不需要調用第二個函數-整個事情可以在一個函數中完成。 另外-如果警報純粹是為了證明“其他”結果-您應該調查console.log()的使用-它的押注者用於調試。
為了解釋三元運算符,首先要寫出要滿足的條件(請注意,它前面沒有“ if”。其后,如果比較正確,則使用“?”字符執行操作,並使用“:”結果是否為假的字符。
請注意,我總是像在此所做的那樣在三行上編寫三元運算符-我發現它更易於閱讀-可以全部寫在一行上-個人喜好。
最后一件事-不“;” 在statemtn的“ true”部分的末尾-我碰巧寫了三行代碼,這只是一個表達式。
function testInput() {
userInput == commandOne
? document.getElementById("demo").innerHTML += "<br>executed!"
: alert("this is an alert message");
}
您使用了錯誤的運算符。 您必須使用==
符號而不是單個=
符號。
function testInput() {
if (userInput == commandOne) {
document.getElementById("demo").innerHTML += "<br />executed!";
} else {
alert("This is an alert message");
}
}
一個=
符號( =
)表示該符號左側的值與該符號右側的值相同。
雙=
符號( ==
)表示符號兩側的兩個值相等。
三重=
符號( ===
)表示兩個值相等且類型相同。
單擊此處了解更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.