如果condition不等于-1

时间:2013-07-15 02:18:16

标签: javascript

有人可以向我解释在这个if语句中-1表示/代表什么。

    if(window.location.href.indexOf("pathname") != -1) {
    //do something
     };

我认为这样做的方式是(如果是真的那么做点什么)

   if(window.location.href.indexOf("pathname") == 0) {
    //do something
     };

0是1?这意味着它总是假的,除非'pathname'存在哪个变为真?

这让我很困惑。我应该使用!= -1,== 0或> = 0。

9 个答案:

答案 0 :(得分:1)

.indexOf()用于查找匹配项 - 在您的子字符串的情况下。如果函数找到匹配项,则返回它启动的索引。如果未找到匹配项,则返回-1。您可以阅读文档here

根据你的问题:

if(window.location.href.indexOf("pathname") == 0) {
    // code here will be executed only if your current URL
    // starts with 'pathname' (0 is the first index in a String)
};

if(window.location.href.indexOf("pathname") != -1) {
    // code here will be executed only if your current URL
    // contains the string 'pathname' (-1 means no match was found)
};

答案 1 :(得分:1)

基于docsindexOf如果找不到参数中字符串的匹配项,则返回-1。否则,它返回字符串的索引。

来自docs的引用:

  

返回在数组中可以找到给定元素的第一个索引,如果不存在则返回-1。

答案 2 :(得分:1)

-1用于表示搜索您提供的子字符串时没有匹配项。所有输出> -1表示在较大的字符串中找到子字符串的起始位置

在此处阅读更多内容:http://www.w3schools.com/jsref/jsref_indexof.asp

答案 3 :(得分:1)

indexOf返回 index ,子字符串在字符串中开始,而不是true / false,具体取决于字符串中子字符串的存在

字符串和数组在JavaScript中为零索引,因此返回值0表示子字符串从字符串的最开头开始。 -1不是有效索引,这就是indexOf在找不到字符串时返回的原因。

答案 4 :(得分:1)

当找不到参数字符串时,indexOf返回-1。如果找到它,它还返回> = 0。因此,如果您要检查字符串是否出现,!= - 1和> = 0是相同的事情。 如果从第一个索引开始匹配,则返回0。

答案 5 :(得分:1)

indexOf是一个函数,它定位任何其他给定对象中对象的索引(位置),无论它是字符串中的字符,还是缓冲区中的字节......等等。

如果找不到,为了安全起见,它返回-1。这是因为0是对象中的索引。

例如:

"hello world"

h = 0
e = 1
l = 2
...

所以如果没有找到它将是-1,如果它被发现它将是> =(大于或等于)0所以基本上!= -1和> = 0将返回相同的输出

答案 6 :(得分:0)

-1 -

中没有这样的字符串

0 - 可搜索的字符串在最开头(它的第一个符号是主题字符串中的0的符号)

答案 7 :(得分:0)

http://www.w3schools.com/jsref/jsref_indexof.asp

  

indexOf()方法返回字符串中第一次出现指定值的位置。

所以使用> = 0来检查字符串是否在字符串中并且== - 1来检查子字符串是否缺席

答案 8 :(得分:0)

点击此链接http://www.w3schools.com/jsref/jsref_indexof.asp

请仔细阅读一些教程,了解indexOf()。顺便说一句,indexOf()是javascript 不是jQuery:)