entry

substring、substr、charAt、slice の違い

#JavaScript

substring

開始位置と終了位置を指定してその間の文字列を返す

また第一引数の値が第二引数より大きければ2つの引数を交換してくれる

※終了位置に指定した文字列は外される

ts
"hello".substring(1, 3);
// => "el"

"hello".substring(3, 1);
// => "el"

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/substring

substr

substringは開始位置と終了位置を指定するのに対し、substrは開始位置と文字列の長さを指定する

※ただ非推奨らしい

ts
"hello".substring(1, 3);
// => "ell"

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/substr

charAt

指定した位置にある単一の文字列を返す

ts
"hello".charAt(1);
// => "e"

"🐤".charAt(0);
// => "\uD83D"

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/charAt

slice

substring とほぼ同じだが負の値の扱いが違う

substring の場合負の値は 0 として扱われるが、slice の場合は末尾からの文字数で探すようになる

ts
"hello".slice(1, 3);
// => "el"

"hello".slice(-3);
// => "llo"

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/slice