你如何比较Javascript中的两个变量?

时间:2018-03-27 03:59:30

标签: javascript html

我试图将两个不同的变量相互比较,并在它们匹配时执行某些代码。 变量是: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,文本(执行!)总是输出到我的段落。浏览器似乎认为它们匹配时不匹配。

3 个答案:

答案 0 :(得分:2)

您在if语句中错过了您的运营商。

if (userInput == commandOne)

==比较值

if (userInput === commandOne)

===比较值和数据类型。

答案 1 :(得分:0)

如上所述 - 你有错误的操作符 - 但是我只想展示逻辑的替代方法: - 三元运算符 - 使其更好更清晰,更简洁,并减少if / else标记。

顺便说一句 - 考虑到所提供的代码 - 你甚至不需要调用第二个函数 - 整个过程可以在一个函数中完成。此外 - 如果警报纯粹是为了演示&#34;否则&#34;结果 - 您应该调查console.log()的用法 - 它是调试的好方法。

要解释三元运算符 - 首先要写入要满足的条件(注意没有&#34;如果&#34;在它之前。跟随它 - 使用&#34;?&#34; charcter到如果hte comparison为true,则给出一个动作,如果结果为假,则使用&#34;:#34;字符。

请注意,我总是在三行上编写三元运算符,就像我在这里所做的那样 - 我觉得它更容易阅读 - 它可以全部写在一行 - 个人偏好。

最后一件事 - 没有&#34 ;;&#34;在&#34; true&#34;的最后statemtn的一部分 - 我碰巧写了三行代码。

function testInput() {
  userInput == commandOne
    ? document.getElementById("demo").innerHTML += "<br>executed!"
    : alert("this is an alert message");
}

答案 2 :(得分:0)

您使用了错误的运算符。您必须使用==符号,而不是单个=符号。

function testInput() {
  if (userInput == commandOne) {
     document.getElementById("demo").innerHTML += "<br />executed!";
  } else {
     alert("This is an alert message");
  }
}

单个=符号(=)表示符号左侧的值与符号右侧的值相同。

=符号(==)表示符号两侧的两个值相等。

=符号(===)表示两个值相等且类型相同。

Click here了解更多信息。