Javascript并不总是返回false

Javascript并不总是返回false,javascript,html,Javascript,Html,这是我的密码。控制台的读数总是错误的。发生了什么。我想是在我反对文本框的时候 函数比较(){ var test=“test”; var输入=document.getElementById(“输入”).value; var inputLen=input.length; 变种蜱; 对于(勾号=0;勾号

这是我的密码。控制台的读数总是错误的。发生了什么。我想是在我反对文本框的时候

函数比较(){
var test=“test”;
var输入=document.getElementById(“输入”).value;
var inputLen=input.length;
变种蜱;
对于(勾号=0;勾号

执行
for
循环时,
勾选
变量在退出循环之前的最后一次迭代中增加到5。要解决此问题,请将其与
test.length
进行比较,但不要使用
-1
减小它:

函数比较(){
var test=“test”;
var输入=document.getElementById(“输入”).value;
var inputLen=input.length;
变种蜱;
对于(勾号=0;勾号

解决方案1

var test = "test";
var input = document.getElementById("input").value;
var inputLen = input.length;
var tick;

for (tick=0; tick < inputLen; tick++)
{
    if (input[tick]!=test[tick])
    {
        break;
    }          
}

if (tick==test.length)
{
   console.log("equal");
}
else
{
   console.log("wrong");
}
var test=“test”;
var输入=document.getElementById(“输入”).value;
var inputLen=input.length;
变种蜱;
对于(勾号=0;勾号
解决方案2

var test = "test";
var input = document.getElementById("input").value;
var inputLen = input.length;
var tick;

for (tick=1; tick <= inputLen; tick++)
{
   if (input[tick-1]!=test[tick-1])
   {
       break;
   }          
}

if ((tick - 1)==test.length)
{
   console.log("equal");
}
else
{
   console.log("wrong");
}
var test=“test”;
var输入=document.getElementById(“输入”).value;
var inputLen=input.length;
变种蜱;

对于(勾号=1;勾号应为
勾号===test.length
(因为
勾号
在循环退出前最后一次递增)代码应该做什么?看起来您是通过一次比较一个字母来测试两个字符串值是否相等,但是为什么不直接测试
input==test
?使用循环而不检查长度意味着
“testing”
的输入将被视为等于
“test”
value。我不知道你能像这样比较它们that@nnnnnn我尝试了您的解决方案,但它仍然不起作用。如果您只想测试两个字符串是否相等,只需说
if(test==input){console.log(“equal”)}或者{console.log(“error”)}
。没有循环。除非您想进行不区分大小写的比较,然后只需执行
if(test==input.toLowerCase())
(注意
test
已经是小写的)。