簡體   English   中英

您如何比較Javascript中的兩個變量?

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

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