在我的代码中,我有这个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;
}
答案 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
再次感谢所有的帮助和支持!