If/Else语句返回误报
If/Else Statement Returning false positives
在我的代码中,我有一个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;
}
因为代码不是检查一个输入与两个值的方式。
if ( input == null || " " )
应该是
if (input==null || input == " ")
input == null || " "
计算结果为(比较结果(||"。现在,由于"(非空字符串(是一个truthy值,因此它总是计算为true。
评估顺序:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
添加到其他回复中,这些回复都是关于||运算符和优先级的正确回复。
在大多数情况下,使用==不是一件好事,尤其是因为0 == null
等-如果你正在检查它是否真的是null或空字符串,那么这样的东西更安全:
if (input === null || input.trim() === "") {
...
这会检查类型和内容,因此不能给出误报。不过,如果输入不是字符串,它会抱怨。
非常感谢!作为迄今为止收到的所有答案的总结:
OR
运算符(||
(将input == null
与" "
进行比较,后者的计算结果总是为true===
优于==
再次感谢您的帮助和支持!
相关文章:
- 我们可以在javascript中使用函数作为返回语句吗
- 如何在提示下获取和使用从window.onbeforeunload事件的返回语句显示的值
- 为什么模块级返回语句在 Node.js 中有效
- 不了解这种返回语句是如何工作的
- 返回语句后的函数声明全局变量不会被覆盖
- 检查浏览器支持时出现非法返回语句
- 非法返回语句错误
- 最佳实践:在 JavaScript 中返回语句
- 有条件地在返回语句中包含 json 字段
- Javascript 条件返回语句(Shorthand if-else 语句)
- 绑定函数的返回语句中参数的推理是什么
- 具有多个返回语句的函数返回什么
- 带有返回语句 JavaScript 的三元运算符
- 了解返回语句
- 无法调用返回语句的函数
- 为什么在 cosole 之前返回语句.log会影响 JavaScript 中的整个函数
- 未捕获的语法错误:非法返回语句
- 学习JS并困惑何时使用返回语句
- 在 for 循环中使用多个返回语句
- 如何在 Javascript 中提取包括返回语句在内的通用逻辑