我目前正在使用Javascript中的一些测试代码。当我在for..loop中的IF语句中插入..else {}时,如果语句为TRUE,则不应运行else {}下的过程,但它不会发生。输出始终显示消息"没有记录的位置"甚至声明都是正确的。
这里是Javascript的初学者。 : - )
这是示例代码。
function forLoops() {
for (var x = 0; x < places.length; x++) {
if(userInput === places[x]) {
console.log("Your place input " + userInput + " is on our database.");
} else {
console.log("No place logged!");
}
}
}
答案 0 :(得分:1)
您正在使用===
而非==
,这在javascript中表示相等且无类型转换。
所以如果userInput不是一个数字,但可能是数字“6”的6个,而不是相等的字符串。
使用==
答案 1 :(得分:0)
解决了!
在声明变量时,我应该使用==
而不是===
。
我在尝试和测试代码时意识到了这一点。
上面的答案支持我的答案。
答案 2 :(得分:-1)
此处根据您提供的代码
未定义userInput另一件事是
如果您使用===
,则在检查过程中不会使用转化。这是严格的比较,但如果您使用==
,那么它将完成转换,然后相互映射。
试试这个
function forLoops(userInput) {
for (var x = 0; x < places.length; x++) {
if(userInput === places[x]) {
console.log("Your place input " + userInput + " is on our database.");
} else {
console.log("No place logged!");
}
}
}
在调用期间将用户输入传递给foorloop
答案 3 :(得分:-1)
使用===
时,您必须确保两个操作数的类型相同,例如'userInput'
以及数组'places'
中包含的所有元素。请按照评论中的建议尝试==
。