これら 2 つの方法の違いがわかる人はいますか?
String.prototype.slice
String.prototype.substring
ベストアンサー1
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()
。 - が負の場合
stop
: stop をstring.length – Math.abs(stop)
(元の値) に設定します。ただし、0 (つまり、Math.max(0, string.length + stop)
)に制限されます。ECMA仕様。