有人可以向我解释在这个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。
答案 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)
答案 2 :(得分:1)
-1用于表示搜索您提供的子字符串时没有匹配项。所有输出> -1表示在较大的字符串中找到子字符串的起始位置
答案 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:)