Javascript 返回值条件的索引

Javascript 返回值条件的索引,javascript,Javascript,这似乎是一个简单的问题,但下面的代码可以工作,但并不像我预期的那样 这是一个在线视频检查字段中http的示例。我知道关于使用indexOf的“正确”方法还有其他问题,但我的问题是为什么这段代码有效 document.ucDivIntake.website.onchange = function(){ var theURL = document.ucDivIntake.website.value; if(theURL.indexOf("http")){ document.g

这似乎是一个简单的问题,但下面的代码可以工作,但并不像我预期的那样 这是一个在线视频检查字段中http的示例。我知道关于使用indexOf的“正确”方法还有其他问题,但我的问题是为什么这段代码有效

document.ucDivIntake.website.onchange = function(){
var theURL = document.ucDivIntake.website.value;
    if(theURL.indexOf("http")){
        document.getElementById('errorMessage_website').innerHTML = "need http";
        document.getElementById('errorMessage_website').style('display', 'inline');
    }
}
如果http不存在,则会显示错误消息。如果indexOf未找到http,则返回-1。我在ide调试器中确认这一点。因此,这将失败的条件,而不是输入条件代码。似乎我缺少了一些基本信息。

函数的
.indexOf()
返回的是一个数字,而不是布尔值。数值将大于或等于零,这意味着如果搜索字符串开头出现“http”,结果将为
0
,测试将失败

要做的最清楚的事情是显式比较:

if (theURL.indexOf("http") > -1)
.indexOf()
函数返回一个数字,而不是布尔值。数值将大于或等于零,这意味着如果搜索字符串开头出现“http”,结果将为
0
,测试将失败

要做的最清楚的事情是显式比较:

if (theURL.indexOf("http") > -1)
.indexOf()
函数返回一个数字,而不是布尔值。数值将大于或等于零,这意味着如果搜索字符串开头出现“http”,结果将为
0
,测试将失败

要做的最清楚的事情是显式比较:

if (theURL.indexOf("http") > -1)
.indexOf()
函数返回一个数字,而不是布尔值。数值将大于或等于零,这意味着如果搜索字符串开头出现“http”,结果将为
0
,测试将失败

要做的最清楚的事情是显式比较:

if (theURL.indexOf("http") > -1)

indexOf
如果位于字符串开头,则返回零。由于零是“falsy”,因此不满足
if
条件

应该是:

if(theURL.indexOf("http") >= 0)

indexOf
如果位于字符串开头,则返回零。由于零是“falsy”,因此不满足
if
条件

应该是:

if(theURL.indexOf("http") >= 0)

indexOf
如果位于字符串开头,则返回零。由于零是“falsy”,因此不满足
if
条件

应该是:

if(theURL.indexOf("http") >= 0)

indexOf
如果位于字符串开头,则返回零。由于零是“falsy”,因此不满足
if
条件

应该是:

if(theURL.indexOf("http") >= 0)
在javascript中,如果数字不是0,if([numeric value])将始终返回true

如果为0,则为false

在javascript中,如果数字不是0,if([numeric value])将始终返回true

如果为0,则为false

在javascript中,如果数字不是0,if([numeric value])将始终返回true

如果为0,则为false

在javascript中,如果数字不是0,if([numeric value])将始终返回true


如果为0,则为false

indexOf
将返回字符串在目标字符串中的位置。如果这是在位置0,那么这将评估为“假”,因此失败


类似地,如果它不存在,它将返回-1-也将为false。

indexOf
将返回字符串在目标字符串中的位置。如果这是在位置0,那么这将评估为“假”,因此失败


类似地,如果它不存在,它将返回-1-也将为false。

indexOf
将返回字符串在目标字符串中的位置。如果这是在位置0,那么这将评估为“假”,因此失败


类似地,如果它不存在,它将返回-1-也将为false。

indexOf
将返回字符串在目标字符串中的位置。如果这是在位置0,那么这将评估为“假”,因此失败


类似地,如果它不存在,它将返回-1-也将为false。

因此,即使它得到-1,它也是“true”,并且满足条件,除非http在字符串的开头,否则条件将满足?这可以解释结果。我以为-1是“假”。@RGB是的,没错。JavaScript中的“falsy”值是
0
NaN
null
未定义的
,当然还有
false
。因此,即使它得到-1,它是“true”并且满足条件,除非http在字符串的开头,否则条件会满足吗?这可以解释结果。我以为-1是“假”。@RGB是的,没错。JavaScript中的“falsy”值是
0
NaN
null
未定义的
,当然还有
false
。因此,即使它得到-1,它是“true”并且满足条件,除非http在字符串的开头,否则条件会满足吗?这可以解释结果。我以为-1是“假”。@RGB是的,没错。JavaScript中的“falsy”值是
0
NaN
null
未定义的
,当然还有
false
。因此,即使它得到-1,它是“true”并且满足条件,除非http在字符串的开头,否则条件会满足吗?这可以解释结果。我以为-1是“假”。@RGB是的,没错。JavaScript中的“falsy”值是
0
NaN
null
未定义
,当然还有
false