1

このifステートメントで-1が何を意味/表すのか、誰か説明してください。

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

私が思う方法は、次のようなことをすることです(trueの場合、何かをします)

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

0が1?つまり、true になる「パス名」が存在しない限り、常に false です。

これはいつも私を混乱させます。!= -1、== 0、または >=0 を使用する必要があります。

4

9 に答える 9

1

.indexOf()一致を探すためのものです-部分文字列の場合。関数が一致を見つけると、関数が開始するインデックスを返します。一致が見つからない場合は -1 を返します。ここでドキュメントを読むことができます。

あなたの質問によると:

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)
};
于 2013-07-15T02:19:56.403 に答える
1

indexOf は、文字列内の文字であろうと、バッファ内のバイトであろうと、他の特定のオブジェクト内のオブジェクトのインデックス (位置) を見つける関数です。

見つからない場合は、安全のために -1 を返します。これは、0 がオブジェクトのインデックスであるためです。

例えば:

"hello world"

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

したがって、見つからない場合は -1 になり、見つかった場合は >= (以上) 0 になります。基本的に != -1 と >= 0 は同じ出力を返します。

于 2013-07-15T02:26:31.560 に答える
1

indexOf文字列内の部分文字列の存在に応じて、 /ではなく、文字列内の部分文字列が始まるインデックスを返します。truefalse

文字列と配列は JavaScript でゼロからインデックス付けされるため、戻り値の0は、部分文字列が文字列の最初から始まることを意味します。-1は有効なインデックスではありindexOfません。そのため、文字列が見つからなかったときにそれを返します。

于 2013-07-15T02:22:11.383 に答える
1

パラメータ文字列が見つからない場合、indexOf は -1 を返します。また、見つかった場合は >=0 を返します。したがって、文字列が存在するかどうかを確認している場合、!=-1 と >=0 は同じことです。一致が最初のインデックスから始まる場合は 0 を返します。

于 2013-07-15T02:22:19.180 に答える
0

-1 -- 内部にそのような文字列はありません

0 -- 検索可能な文字列は最初の部分にあります (最初の記号は対象文字列の 0 の記号です)

于 2013-07-15T02:20:03.813 に答える
0

このリンクを確認してくださいhttp://www.w3schools.com/jsref/jsref_indexof.asp

いくつかのチュートリアルを読んで、indexOf() について調べてください。ところで、indexOf() は jQuery ではなく JavaScript です :)

于 2013-07-15T02:27:02.707 に答える