If / Else Statement返回误报

时间:2015-08-13 15:03:18

标签: javascript if-statement

在我的代码中,我有这个if/else语句来处理数字和字母都返回cont = false的情况。我试过运行这个代码,结果相同。显然,它应该执行else语句中的代码。有没有人有任何想法?

var input = prompt()

if (input == null || " ") {
  //Cont determines whether or not to continue
  console.log("cont = false");
  var cont = false;
}else{
  console.log("cont = true");
  var cont = true;
}

4 个答案:

答案 0 :(得分:7)

因为该代码不是您根据两个值检查一个输入的方式。

if ( input == null || " " )

应该是

if (input==null || input == " ")

答案 1 :(得分:0)

input == null || " "

评估为(比较结果)|| “”。现在,因为“”(非空字符串)是一个真值,所以它总是计算为真。

评估顺序 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

答案 2 :(得分:0)

添加其他对||都正确的回复运算符和优先级。

在大多数情况下使用==并不是一件好事,尤其是因为0 == null等 - 如果您正在检查它是否实际上为空或者是一个空字符串,那么像这样的东西更安全:

if (input === null || input.trim() === "") {
...

这会检查类型和内容,因此无法给出误报。虽然如果输入不是一个字符串,它会抱怨。

答案 3 :(得分:0)

非常感谢!作为到目前为止收到的所有答案的摘要:

  • ||运算符(input == null)正在将" "===进行比较,后者始终评估为真
  • ==优于git clone original-repo-url git remote rename origin upstream git remote add origin new-repo-url

再次感谢所有的帮助和支持!