これら2つの方法の違いを知っている人はいますか?
String.prototype.slice
String.prototype.substring
これら2つの方法の違いを知っている人はいますか?
String.prototype.slice
String.prototype.substring
slice()
substring()
いくつかの異なる動作のように機能します。
Syntax: string.slice(start, stop);
Syntax: string.substring(start, stop);
共通点:
start
等しい場合:stop
空の文字列を返しますstop
時:文字列の末尾まで抽出の違い :substring()
start > stop
、substring
これらの 2 つの引数を交換します。NaN
、それは であるかのように扱われ0
ます。の違い :slice()
start > stop
、slice()
空の文字列を返します。( ""
)start
とまったく同じように、文字列の末尾から char を設定します。substr()
この動作は、Firefox と IE の両方で見られます。stop
: stop をstring.length – Math.abs(stop)
(元の値) にMath.max(0, string.length + stop)
設定します。slice()
。substr()
。それ以外の場合は、完全な比較のために読み進めてください
string.slice(start,end)
string.substr(start,length)
string.substring(start,end)
注#1:slice()==substring()
slice()
メソッドは、文字列の一部を抽出し、抽出した部分を新しい文字列で返します。substr()
メソッドは、指定された位置の文字から始まる文字列の一部を抽出し、指定された数の文字を返します。substring()
メソッドは、文字列の一部を抽出し、抽出した部分を新しい文字列で返します。注 2 :slice()==substring()
slice()
しませんsubstr()
しませんsubstring()
#3に注意しないで
ください:slice()==substring()
slice()
文字列の末尾から始まる文字を選択しますsubstr()
文字列の末尾から始まる文字を選択しますsubstring()
実行しない注 3 :slice()==substr()
slice()
実行しないsubstr()
2 番目の引数は位置ではなく長さの値であるため、問題なく通常どおり実行されます。substring()
2 つの引数を交換し、通常どおり実行しますslice()
必須、次を示します: 開始インデックスsubstr()
必須、次を示します: 開始インデックスsubstring()
必須、次を示します: 開始インデックス注 4 :slice()==substr()==substring()
slice()
オプション、抽出を終了する位置 (その位置まで、ただしそれを含まない)substr()
オプション、抽出する文字数substring()
オプション、抽出を終了する位置 (その位置まで、ただしそれを含まない)注#5:slice()==substring()
slice()
start-position から文字列の末尾までのすべての文字を選択しますsubstr()
start-position から文字列の末尾までのすべての文字を選択しますsubstring()
start-position から文字列の末尾までのすべての文字を選択します注#6:slice()==substr()==substring()
slice()
したがって、との間には違いがあると言えますがsubstr()
、substring()
は基本的に のコピーですslice()
。