substring、substr、charAt、slice の違い

created at: 2021-09-26

history

substring

開始位置と終了位置を指定してその間の文字列を返す
また第一引数の値が第二引数より大きければ2つの引数を交換してくれる
※終了位置に指定した文字列は外される
'hello'.substring(1, 3)
// => "el"

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

substr

substringは開始位置と終了位置を指定するのに対し、substrは開始位置と文字列の長さを指定する
※ただ非推奨らしい
'hello'.substring(1, 3)
// => "ell"

charAt

指定した位置にある単一の文字列を返す
'hello'.charAt(1)
// => "e"

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

slice

substring とほぼ同じだが負の値の扱いが違う
substring の場合負の値は 0 として扱われるが、slice の場合は末尾からの文字数で探すようになる
'hello'.slice(1, 3)
// => "el"

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